🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #28313

Re: Pytania początkującego cz. 3

#28313
From: khonsu
Date: Tue, 15 Nov 2011 20:27
63 lines
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-mail
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>

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