Article View: pl.comp.lang.python
Article #27074Re: Python i importowanie
From: Łukasz Rekucki
Date: Sun, 10 Jan 2010 16:06
Date: Sun, 10 Jan 2010 16:06
69 lines
3493 bytes
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-mailReferences:
<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