Zanurkuj w Pythonie/Dwa sposoby importowania modułów: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
mNie podano opisu zmian |
|||
Linia 1:
== Dwa sposoby importowania modułów ==
W Pythonie mamy dwa sposoby importowania modułów. Obydwa są przydatne, dlatego też powinniśmy umieć je wykorzystywać. Jednym ze sposobów jest użycie polecenia <code>import
from
Jak widzimy, składnia tego wyrażenia jest bardzo podobna do <code>import
{{Infobox|1=<code>from module import *</code> w Pythonie przypomina <code class="lang-pl">use module</code> w Perlu, a Pythonowe <code>import module</code> przypomina Perlowskie <code>require module</code>.
}}
{{Infobox|<code>from module import *</code> w Pythonie jest analogią do <code>import module.*</code> w Javie, a <code>import module</code> w Pythonie przypomina <code>import module</code> w Javie.}}
{{Python/Przykład
|
|tekst=
>>> import types
Linia 18 ⟶ 19:
{{samp|<type 'function'>}}
>>> FunctionType #(2)
{{sampErr|Traceback (
File "<
NameError:
>>> from types import FunctionType #(3)
>>> FunctionType #(4)
{{samp|<type 'function'>}}
# Moduł <code>types</code> nie posiada żadnych metod. Posiada on jedynie atrybuty określające wszystkie typy zdefiniowane przez Pythona. Zauważmy, że atrybut tego modułu (w tym przypadku <code>FunctionType</code>) musi być poprzedzony nazwą modułu -- <code>types</code>.
# <code
# Za pomocą tego wyrażenia atrybut <code>FunctionType</code> z modułu <code>types</code> został zaimportowany bezpośrednio do lokalnej przestrzeni nazw.
# Teraz możemy odwoływać się bezpośrednio do <code>FunctionType</code>, bez odwoływania się do <code>types</code>.
Linia 34 ⟶ 35:
* Kiedy często odwołujemy się do atrybutów i metod, a nie chcemy wielokrotnie wpisywać nazwy modułu, wtedy najlepiej wykorzystać <code>from module import</code>.
* Jeśli potrzebujemy selektywnie zaimportować tylko kilka atrybutów lub metod, powinniśmy skorzystać z <code>from module import</code>.
* Jeśli moduł zawiera atrybuty lub metody, które posiadają taką samą nazwę jaka jest w naszym module, powinniśmy wykorzystać <code>import
W pozostałych przypadkach to kwestia stylu programowania, można spotkać kod napisany obydwoma sposobami.
|