Article View: pl.comp.lang.python
Article #28313Re: Pytania początkującego cz. 3
From: khonsu
Date: Tue, 15 Nov 2011 20:27
Date: Tue, 15 Nov 2011 20:27
63 lines
3459 bytes
3459 bytes
On Tue, 15 Nov 2011 20:45:55 +0100, hubert depesz lubaczewski
<depesz@depesz.com> wrote:
> On 2011-11-15, Mariusz Kruk <Mariusz.Kruk@epsilon.eu.org> wrote:
>>> ok. dane wejściowe:
>>> 1. mamy klasę "email".
>>> 2. w dokumentacji jest mowa o klasie "Message" (z dużej litery).
>>>
>>> skąd mam wiedzieć, że:
>>>
>>> 1. "Message" to tak naprawdę "email.message.Message"
>>
>> Szczerze mówiąc, nie przypominam sobie, żebym się spotkał z odwołaniem
>> do zupełnie innego pakietu (pomijając oczywiście obiekty standardowe).
>> Ale jeśli, w takim wypadku spodziewałbym się odwołania do pełnej ścieżki
>> właśnie.
>
> tak, ale skąd mam wiedzieć, że to jest email.message.Message, a nie np.
> email.msg.Message, albo email.Message.Message, albo
> email.foobar.Message?
>
>>> 2. aby dostać doca do "email.message.Message" muszę zaimportować
>>> email.message ?
>> No, z jakiegoś pakietu ta klasa się wzięła, nieprawdaż? :-)
>
> ok. czy zawsze mając pełną nazwę klasy, to co muszę importować biorę z
> nazwy klasy, bez ostatniego elementu?
>
> tzn. gdybym miał klasę:
> world.europe.poland.warsaw.depesz.python
> to do importowania na 100% byłby
> world.europe.poland.warsaw.depesz
>
> ?
>
> depesz
>
Operator "kropkowy" to odwołanie do atrybutu obiektu (pola, metody, etc.).
To jest zależne od tego co chcesz uzyskać, jeśli chcesz mieć klasę z
jakiejś biblioteki, to oczywiste że musisz tę bibliotekę zaimportować.
Odwoływanie się do obiektów w modułach wygląda tak samo jak dostęp do
atrybutów innych obiektów, w pythonie wszystko jest obiektem.
Tak więc:
email.message.Message
^ ^ ^
pakiet email ---+ | +--- Twój obiekt (klasa Message)
moduł message
Jeśli world to moduł to europe.poland.warsaw.depesz, będzie jakimś
obiektem tego modułu, i wystarczy że zaimportujesz tylko world.
Jeśli world to pakiet a europe to submoduł, to żeby dostać się do
poland.warsaw.depesz musisz zaimportować world.europe.
Jeśli email to obiekt w twojej przestrzeni nazw, to nic nie musisz
importować.
W ogóle wydaje mi się że nie rozumiesz, struktury biblioteki standardowej
pythona, wszystko co nie jest "core python" musisz sobie zaimportować.
--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net ---
Technical Details
Message-ID:
<op.v4z8fjm7k6zdlz@5te-dominium>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!news.netfront.net!not-for-mailReferences:
<9gr8p8-v4r.ln1@depesz.com> <slrnjc463f.9rq.Mariusz.Kruk@epsilon.rdc.pl> <u98ap8-uiv.ln1@depesz.com> <slrnjc4u2u.9rq.Mariusz.Kruk@epsilon.rdc.pl> <3vaap8-m1v.ln1@depesz.com> <slrnjc5fbu.9rq.Mariusz.Kruk@epsilon.rdc.pl> <j4sap8-gpv.ln1@depesz.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!news.netfront.net!not-for-mail From: khonsu <fkhonsu@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Pytania początkującego cz. 3 Date: Tue, 15 Nov 2011 21:27:08 +0100 Organization: Netfront http://www.netfront.net/ Lines: 90 Message-ID: <op.v4z8fjm7k6zdlz@5te-dominium> References: <9gr8p8-v4r.ln1@depesz.com> <slrnjc463f.9rq.Mariusz.Kruk@epsilon.rdc.pl> <u98ap8-uiv.ln1@depesz.com> <slrnjc4u2u.9rq.Mariusz.Kruk@epsilon.rdc.pl> <3vaap8-m1v.ln1@depesz.com> <slrnjc5fbu.9rq.Mariusz.Kruk@epsilon.rdc.pl> <j4sap8-gpv.ln1@depesz.com> NNTP-Posting-Host: 46.113.252.86 Mime-Version: 1.0 X-Trace: adenine.netfront.net 1321388833 80089 46.113.252.86 (15 Nov 2011 20:27:13 GMT) X-Complaints-To: news@netfront.net NNTP-Posting-Date: Tue, 15 Nov 2011 20:27:13 +0000 (UTC) User-Agent: Opera Mail/11.60 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit