PEP 8 mówi:
- Importy są zawsze umieszczane na początku pliku, zaraz po komentarzach do modułów i dokumentach oraz przed wartościami globalnymi i stałymi modułu.
Czasami naruszam PEP 8. Czasami importuję rzeczy wewnątrz funkcji. Generalnie robię to, jeśli istnieje import, który jest używany tylko w ramach jednej funkcji.
Jakieś opinie?
EDYTUJ (powód, dla którego uważam, że importowanie w funkcjach może być dobrym pomysłem):
Główny powód: może uczynić kod bardziej przejrzystym.
- Patrząc na kod funkcji, mogę zadać sobie pytanie: „Co to jest funkcja / klasa xxx?” (xxx jest używany wewnątrz funkcji). Jeśli mam wszystkie moje importy na górze modułu, muszę tam zajrzeć, aby określić, co to jest xxx. Jest to bardziej problem podczas używania
from m import xxx
. Widzeniem.xxx
w funkcji pewnie mówi mi więcej. W zależności od tego, co tom
jest: Czy jest to dobrze znany moduł / pakiet (import m
) najwyższego poziomu ? Czy jest to podmoduł / pakiet (from a.b.c import m
)? - W niektórych przypadkach posiadanie tych dodatkowych informacji („Co to jest xxx?”) W pobliżu miejsca, w którym używane jest xxx, może ułatwić zrozumienie funkcji.