Article View: pl.comp.lang.python
Article #27069Re: Python i importowanie
From: Łukasz Rekucki
Date: Mon, 21 Dec 2009 01:26
Date: Mon, 21 Dec 2009 01:26
27 lines
2709 bytes
2709 bytes
Używanie terminów zmienna i przestrzeń nazw wydaje mi się myląca. Podstawą jest zrozumienie, że "log" w Pythonie nie jest zmienną, a jedynie nazwą wskazującą na jakiś obiekt. Tak więc sytuacja wygląda tak: 0) zaczynasz wykonywanie module3 1) import module1 1.1) do słownika modułu module1 dodawana jest nazwa "log" wskazująca na obiekt None 2) import module2 2.1) wykonywane jest ciało klasy Log 2.2) do nazwy Log w module2 przypisywana jest nowo utworzona klasa Log 3) import module4 3.1) from module1 import log 3.1.1) moduł "module1" jest już zaimportowany, więc odczytywane jest na jaki obiekt wskazuję nazwa "log" w jego słowniku (jest to None) 3.1.2) w słowniku module4 tworzona jest nowa nazwa i wskazuje ona na None 3.2) Tworzona jest klasa Test (analogicznie do klasy Log) 4) module1.log = module2.Log() # nazwa log w słowniku module1 wskazuję teraz na nowy obiekt klasy Log. Słownik module4 jest niezmieniony. 5) t = module4.Test() 6) t.use_m() 6.1) log nie jest lokalne dla use_m, więc jest globalne. Globalnym kontekstem dla use_m() jest module4. module4.log wskazuję na None -> błąd.
Technical Details
Message-ID:
<5e711ddb-6b92-4362-9f7e-dccf3ccc7165@e27g2000yqd.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!feeder.erje.net!proxad.net!feeder1-2.proxad.net!74.125.46.134.MISMATCH!postnews.google.com!e27g2000yqd.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> <219429b1-25a3-43a5-b074-16a97e723772@p8g2000yqb.googlegroups.com> <9f79d13b-c1a4-443d-9c68-82c088f64763@k17g2000yqh.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!feeder.erje.net!proxad.net!feeder1-2.proxad.net!74.125.46.134.MISMATCH!postnews.google.com!e27g2000yqd.googlegroups.com!not-for-mail From: Łukasz Rekucki <lrekucki@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Python i importowanie Date: Sun, 20 Dec 2009 17:26:12 -0800 (PST) Organization: http://groups.google.com Lines: 28 Message-ID: <5e711ddb-6b92-4362-9f7e-dccf3ccc7165@e27g2000yqd.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> <219429b1-25a3-43a5-b074-16a97e723772@p8g2000yqb.googlegroups.com> <9f79d13b-c1a4-443d-9c68-82c088f64763@k17g2000yqh.googlegroups.com> NNTP-Posting-Host: 212.76.62.207 Mime-Version: 1.0 X-Trace: posting.google.com 1261358772 12883 127.0.0.1 (21 Dec 2009 01:26:12 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 21 Dec 2009 01:26:12 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: e27g2000yqd.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