Zanurkuj w Pythonie/Pakiety: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Zdzichobot (dyskusja | edycje) zamiana {{Nawigacja|Python|->{{Nawigacja|Zanurkuj w Pythonie| [[Python/->[[../ |
poprawki |
||
Linia 1:
{{Podświetl|py}}▼
== Pakiety ==
W rzeczywistości przetwarzanie dokumentu XML jest bardzo proste, wystarczy jedna linia kodu. Jednakże, zanim dojdziemy do tej linii kodu, będziemy musieli krótko omówić, czym są pakiety.
|9.5 |tekst=
>>> from xml.dom import minidom #(1)
>>> xmldoc = minidom.parse('~/diveintopython/common/py/kgp/binary.xml')
# Tej składni jeszcze nie
}}
Brzmi to skomplikowanie, ale tak naprawdę nie jest. Jeśli spojrzymy na konkretną implementację, może nam to pomóc. Pakiet to niewiele więcej niż katalog z modułami, a zagnieżdżone pakiety są podkatalogami. Moduły wewnątrz pakietu (lub zagnieżdżonego pakietu) są nadal zwykłymi plikami <tt>.py</tt> z wyjątkiem tego, że są w podkatalogu, zamiast w głównym katalogu <tt>lib/</tt> Twojej instalacji Pythona.▼
▲Brzmi to skomplikowanie, ale tak naprawdę nie jest. Jeśli spojrzymy na konkretną implementację, może nam to pomóc. Pakiet to niewiele więcej niż katalog z modułami, a zagnieżdżone pakiety są podkatalogami. Moduły wewnątrz pakietu (lub zagnieżdżonego pakietu) są nadal zwykłymi plikami <tt>.py</tt> z wyjątkiem tego, że są w podkatalogu, zamiast w głównym katalogu <tt>lib/</tt>
'''Przykład 9.6. Plikowa struktura pakietu'''▼
{{Python/Przykład
|tekst=
<span>Python21/ katalog główny instalacji Pythona (katalog domowy plików wykonywalnych)
|
Linia 27 ⟶ 29:
+−−parsers/ pakiet xml.parsers (używany wewnętrznie)</span>
Dlatego kiedy powiesz <
'''Przykład 9.7. Pakiety także są modułami'''▼
{{Python/Przykład
|tekst=
>>> from xml.dom import minidom #(1)
>>> minidom
{{samp|<module 'xml.dom.minidom' from 'C:\Python21\lib\xml\dom\minidom.pyc'>}}
>>> minidom.Element
{{samp|<class xml.dom.minidom.Element at 01095744>}}
>>> from xml.dom.minidom import Element #(2)
>>> Element
{{samp|<class xml.dom.minidom.Element at 01095744>}}
>>> minidom.Element
{{samp|<class xml.dom.minidom.Element at 01095744>}}
>>> from xml import dom #(3)
>>> dom
{{samp|<module 'xml.dom' from 'C:\Python21\lib\xml\dom\__init__.pyc'>}}
>>> import xml #(4)
>>> xml
{{samp|<module 'xml' from 'C:\Python21\lib\xml\__init__.pyc'>}}
# W tym miejscu importujemy moduł (<
# Tutaj
# W tym miejscu importujemy pakiet <
# Tutaj importujemy jako moduł główny poziom pakietu <
}}
Więc jak może pakiet (który na dysku jest katalogiem) zostać zaimportowany i traktowany jako moduł (który jest zawsze plikiem na dysku)? Odpowiedzią jest magiczny plik <tt>__init__.py</tt>.
{{Infobox|
Linia 59 ⟶ 63:
}}
Więc dlaczego męczyć się z pakietami? Umożliwiają one logiczne pogrupowanie powiązanych ze sobą modułów. Zamiast stworzenia pakietu <
(dzięki oddzielnym plikom źródłowym, wiele osób może równocześnie pracować nad różnymi częściami).
Jeśli kiedykolwiek
<noinclude>
{{Nawigacja|Zanurkuj w Pythonie|
[[../Przetwarzanie XML-a|Nurkujemy]]|
[[../Parsowanie XML-a
}}
▲{{Podświetl|py}}
</noinclude>
|