Python modülleri "liste=liste" etkisi nedir?
Python standart olarak aşağıdaki kod /usr/lib/python2.7/multiprocessing/dummy/__init__.py
kütüphane gördüm:
list = list
dict = dict
Bu deyim ne anlama geliyor? Benim en iyi tahminim: "izin verirsen dict
list
varsa kontrol edin".
Sadece list
__builtins__
dict
olmadan eski çağlardan beri eski kod mu?
Ve başka bir çılgın tahminim var:optimizasyonukapsam modülü için arama hızı global kapsam list
hareketli. Bu deyim ile ilgili varsayım aklı başında mı? Ben Çoklu işlem için geçerli eğer bu varsayım yanlış.
CEVAP
İhracat. Sen yap o zaman
from multiprocessing.dummy import list
... düzenli list
olur.
Bu satır olmadan, paketi list
multiprocessing.dummy
olmazdı.
Bu mantıklı paket arasında düzgün bir API var. Tüm paketler list
bir sınıf sunmak gerektiğini söylüyorlar. a
özel bir uygulama sağlamak için, b
ancak paket seçer paketi __builtins__
list
kullanmak istiyor.
powerful/__init__.py:
from powerfulinternals import PowerfulList as list
from simple.simpleinternals import Something as whoo
simple/__init__.py:
list = list
from simpleinternals import Something as whoo
application.py:
try:
import powerful as api
else:
import simple as api
mylist = api.list()
woot = api.whoo()
Böyle şeyler yapmak için bir neden daha. Örneğin kullandığınız ne açık olun.
list = list
ayrıca "eğer kullanıyorum listeler türünü değiştirmek isterseniz, bunu değiştirin." bir ifadesi olarak görülebilir
Bu durumda, eski. list
dict
olarak gösterilir:
manager = multiprocessing.dummy.Manager()
l = manager.list()
d = manager.dict()
Ve Manager
tanımı:
def Manager():
return sys.modules[__name__]
yani Manager.list = list
.
En "pythonic" parçalar bir l...
C kaynağı, dış "C" etkisi ned...
&Quot;python3 eşdeğer-m SimpleHTTPServ...
&Quot;kullanımı" Python iddia ned...
Python "ile" deyimi için tas...