Widziałem następujący kod w Pythonie biblioteki standardowej /usr/lib/python2.7/multiprocessing/dummy/__init__.py
:Jaki jest efekt "list = list" w modułach Pythona?
list = list
dict = dict
Co to idiom oznacza? Domyślam się: "sprawdźmy, czy istnieje dict
i list
". Czy to tylko starsza wersja kodu z czasów starożytnych bez list
i dict
w __builtins__
?
Mam jeszcze jedną szaloną hipotezę: optymalizacja prędkości wyszukiwania w ruchu list
z zakresu globalnego do zakresu modułów. Czy to rozsądne założenie dotyczące idiomu? Rozumiem, że założenie jest błędne, jeśli zastosuję je do wieloprocesowości.
(+1) za interesujące pytanie. Biorąc pod uwagę, że w Pythonie 2.6 wprowadzono "wieloprocesorowość", nie wydaje się zbyt prawdopodobne, że kod jest bardzo stary. – NPE
Dzięki za komentarz! Myślałem, że "wieloprocesorowość" jest wystarczająco duża, aby używać go w Pythonie 2.4, ponieważ nie ma notatki "Od wersji 2.6" w dokumentach [1] :( [1] http://docs.python.org/dev/library/multiprocessing .html – darkk
Nie sądzę, że to naprawdę ma znaczenie, ale istnieje notatka "Nowy w wersji 2.6." w całym module: http://docs.python.org/library/multiprocessing.html – NPE