Zanurkuj w Pythonie/Dwa sposoby importowania modułów: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Zdzichobot (dyskusja | edycje) zamiana ProstaNawigacja->Subst:ProstaNawigacja |
mNie podano opisu zmian |
||
Linia 1:
{{Podświetl|py}}▼
▲== Importowanie modułów za pomocą <tt>from module import</tt> ==
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 <
from UserDict import UserDict
Jak widzimy,
{{Infobox|1=<
}}
{{Infobox|<
'''Przykład 5.2. <tt>import module</tt> a <tt>from module import</tt> '''▼
{{Python/Przykład
▲
|tekst=
>>> import types
>>> types.FunctionType #(1)
{{samp|<type 'function'>}}
>>> FunctionType #(2)
{{sampErr|Traceback (innermost last):
File "<interactive input>", line 1, in ?
NameError: There is no variable named 'FunctionType'}}
>>> from types import FunctionType #(3)
>>> FunctionType #(4)
{{samp|<type 'function'>}}
# Moduł <
# <code.FunctionType</code> nie został sam w sobie określony w przestrzeni nazw; istnieje on tylko w kontekście modułu <
#
# Teraz możemy odwoływać się bezpośrednio do <code>FunctionType</code>, bez odwoływania się do <
}}
Kiedy powinniśmy używać <
* Kiedy często odwołujemy się do atrybutów i metod,
* Jeśli potrzebujemy selektywnie zaimportować tylko kilka atrybutów
* Jeśli moduł zawiera atrybuty lub metody, które posiadają taką samą nazwę jaka jest w naszym module, powinniśmy wykorzystać <
W
▲* Kiedy często odwołujemy się do atrybutów i metod i nie chcemy wielokrotnie wpisywać nazwy modułu. Wtedy najlepiej wykorzystać <tt>from module import</tt>.
▲* Jeśli potrzebujemy selektywnie zaimportować tylko kilka atrybutów, metod, powinniśmy wykorzystać <tt>from module import</tt>.
▲* Jeśli moduł zawiera atrybuty lub metody, które posiadają taką samą nazwę jaka jest w naszym module, powinniśmy wykorzystać <tt>import nazwa_modulu</tt> aby uniknąć konfliktu nazw.
▲W innych przypadkach jest to kwestia stylu, można spotkać kod napisany obydwoma sposobami.
{{Infobox|
}}
=== Materiały dodatkowe ===
* [http://www.effbot.org/zone/ eff-bot] opowie nam więcej na temat [http://www.effbot.org/zone/import-confusion.htm różnic między <code>import module</code> a <code>from module import</code>].
* [http://www.python.org/doc/current/tut/tut.html Python Tutorial] omawia zaawansowane techniki importu, włączając w to [http://www.python.org/doc/current/tut/node8.html#SECTION008410000000000000000 <code>from module import *</code>].
<noinclude>
{{Nawigacja|Python|
[[
[[
}}
▲{{Podświetl|py}}
</noinclude>
|