🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Python i importowanie

#27074
From: Łukasz Rekucki
Date: Sun, 10 Jan 2010 16:06
69 lines
3493 bytes
On Jan 10, 3:53 pm, Michal M <mmier...@tycowaterworks.pl> wrote:
> Siedzę w tym Pythonie już jakiś czas i niestety co chwilę stwierdzam,
> że to importowanie jest zdrowo po....
>
> przykład:
>
> p1.m2
> ----------
> import m1
> import p2.m3
>
> print m1.A.counter
> a = m1.A()
> print m1.A.counter
> p2.m3.get()
>
> p1.m1
> ---------
> class A(object):
>     counter = 0
>     def __init__(self):
>         A.counter = 1
>
> p2.m3
> ---------
> import p1.m1
>
> def get():
>     print "w def m3: " + str(p1.m1.A.counter)
>
> Po uruchomieniu m2:
> 0
> 1
> w def m3: 0
>
> Długo kombinowałem jak sprawić aby w m3 widział obiekt A taki jakim
> jest naprawdę. i w końcu wyszło, że trzeba przerobić m2:
>
> p1.m2
> ---------
>
> import p1.m1
> import p2.m3
>
> print p1.m1.A.counter
> a = p1.m1.A()
> print p1.m1.A.counter
> p2.m3.get()
>
> Teraz wynik jak oczekiwano:
> 0
> 1
> w def m3: 1
>
> Tylko, że przy pisaniu większego programu z setkami modułów
> rozrzuconych po różnych paczkach to staje się horrorem. Już teraz ok.
> 80% czasu zajmuje mi kombinowanie z importowaniem aby wszędzie było
> widziane to co ma być. Już nie mówię o zmorze cyklicznych odwołań
> pomiędzy modułami.
>
> Jest na to jakiś sposób, żeby to opanować?
> Jakieś rady?
> Tak, próbowałem i ciągle próbuję to zrozumieć ale co chwila się łapie
> na tym, że już mi się wydawało, że wszystko ok i znowu coś nie działa.
Jeśli masz moduł p1.m2 i chcesz zaimportować moduł p1.m1, to
powinieneś zawsze pisać "import p1.m1". To, że "import m1" w ogóle
działa, to jest efekt uboczny i takie zachowanie jest "Deprecated". W
py3k w ogóle nie znalazł by takiego modułu. W 99% przypadków jeśli
twój program wymaga cyklicznych odwołań, to jest z nim coś nie tak.
Technical Details
Message-ID: <5d3642a4-e024-4cb8-acc4-145fbf828f6f@c34g2000yqn.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.news-service.com!postnews.google.com!c34g2000yqn.googlegroups.com!not-for-mail
References: <37d6d97e-88b4-4324-9973-a368959f8339@e27g2000yqd.googlegroups.com> <52950de7-b700-40e0-964d-0bb7ab394964@x15g2000vbr.googlegroups.com> <mburv6-lmm.ln1@bozon.softax.pl> <30287087-8528-4210-9ba0-0f4c7784279a@h9g2000yqa.googlegroups.com> <3272901b-3457-4af7-bbc3-d90b8f6ca9de@r24g2000yqd.googlegroups.com> <732fb9a9-5dd6-407e-b9ac-ea572f254e6a@h9g2000yqa.googlegroups.com> <0048c61f-61ec-4934-afb7-04a477685871@j19g2000yqk.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.news-service.com!postnews.google.com!c34g2000yqn.googlegroups.com!not-for-mail
From: Łukasz Rekucki <lrekucki@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Python i importowanie
Date: Sun, 10 Jan 2010 08:06:31 -0800 (PST)
Organization: http://groups.google.com
Lines: 76
Message-ID: <5d3642a4-e024-4cb8-acc4-145fbf828f6f@c34g2000yqn.googlegroups.com>
References: <37d6d97e-88b4-4324-9973-a368959f8339@e27g2000yqd.googlegroups.com>  <52950de7-b700-40e0-964d-0bb7ab394964@x15g2000vbr.googlegroups.com>  <mburv6-lmm.ln1@bozon.softax.pl> <30287087-8528-4210-9ba0-0f4c7784279a@h9g2000yqa.googlegroups.com>  <3272901b-3457-4af7-bbc3-d90b8f6ca9de@r24g2000yqd.googlegroups.com>  <732fb9a9-5dd6-407e-b9ac-ea572f254e6a@h9g2000yqa.googlegroups.com>  <0048c61f-61ec-4934-afb7-04a477685871@j19g2000yqk.googlegroups.com>
NNTP-Posting-Host: 212.76.62.207
Mime-Version: 1.0
X-Trace: posting.google.com 1263139591 25444 127.0.0.1 (10 Jan 2010 16:06:31 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sun, 10 Jan 2010 16:06:31 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: c34g2000yqn.googlegroups.com; posting-host=212.76.62.207;  posting-account=5fpXZwoAAADF-CUdCuJ-FpYxG8__-wRx
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US)  AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit