2013-03-27 2 views

Odpowiedz

15

Nie, różnica nie jest kwestią wydajności. W obu przypadkach należy przeanalizować cały moduł i wykonać dowolny kod na poziomie modułu. Jedyną różnicą jest w przestrzeniach nazw: w pierwszym, wszystkie nazwy w importowanym module staną się nazwami w bieżącym module; w drugim tylko nazwa pakietu jest zdefiniowana w bieżącym module.

To bardzo rzadko jest dobry powód, aby używać from foo import *. Albo zaimportuj moduł, albo zaimportuj z niego określone nazwy.

+0

tak, dzięki za odpowiedź. Myślę, że są też pewne powody, aby użyć "z importu paczek *", gdy nazwa paczki może zostać zmieniona. lub jest inny pakiet z tymi samymi funkcjami zastąpi oryginalny pakiet powodujący zmianę wymagań. – Zuckonit

+1

Różnica w wydajności może się kumulować ze wszystkich atrybutów wyszukiwania 'pakiet.foo', kiedy faktycznie używasz' pakietu'. Jeśli jednak to jest problem, zaimportuj konkretne nazwy lub pamięć podręczną, szukając nazw w języku lokalnym. –

+4

Gdy pakiet zmienia nazwę, możesz po prostu "zaimportować nową nazwę jako starą". Jeśli istnieje niebezpieczeństwo częstego przełączania pakietów, od razu "importuj pakiet jako nazwę_pliku". –