🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Python i importowanie

#27038
From: Łukasz Rekucki
Date: Tue, 15 Dec 2009 23:15
52 lines
3020 bytes
On Dec 15, 10:39 pm, Michal M <mier...@swietochlowice.org> wrote:
> Witam
>
> Ostatnio się bardzo zdziwiłem faktem jak działa importowanie w
> Pythonie. Taki przykład:
>
> module1.py
> ------------------------
> class Test1(object):
>     my_var = 'a'
>
>     @staticmethod
>     def change():
>         Test1.my_var = 'b'
> =============
> module2.py
> -----------------------
> import module1
>
> module1.Test1.change()
> print module1.Test1.my_var
> ============
> module3.py
> ----------------------
> from module1 import Test1
>
> print Test1.my_var
> ===========
>
> Zakładając, że wszystko się wykonuje w jednym programie.
Ok, ale co jest w tym programie, bo liczy się kolejność importowania
tych modułów.

> Najpierw module2 ustawia zmienną instancji klasy Test1 na wartość 'b'.
> Tak więc w module3 spodziewałem się ujrzeć 'b', a jest 'a'.
> Wygląda to tak, że from .... import rzeczywiście importuje do swojej
> przestrzeni czyli hmm... tak jakby robił kopię obiektu.
Nie. Import .. from .. jedynie dodaje do słownika odpowiednie nazwy,
które prowadzą do tych samych obiektów. Z tego co pamiętam, istnieje
sposób żeby python zaimportował to samo 2 razy, ale nie jest to aż
takie proste. Moduł ten musiałby być dostępny pod dwoma różnymi
nazwami.

> Czytając wszelakie materiały nie widziałem (lub przegapiłem, lub nie
> zrozumiałem) wzmiankę o takim zachowaniu.
>
> Teraz pytanie, co zrobić, aby w module3 mieć dostęp do TEGO SAMEGO
> obiektu Test1 co w module1 i w module2 ale nie musieć pisać za każdym
> razem module1.Test1.my_var.
>
> Pozdrawiam
> Michał
Technical Details
Message-ID: <c9272bd2-a51f-45dd-aee7-dfd281c34e18@x20g2000vbn.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!news.uni-stuttgart.de!news.belwue.de!newsfeed01.sul.t-online.de!t-online.de!proxad.net!feeder1-2.proxad.net!74.125.46.134.MISMATCH!postnews.google.com!x20g2000vbn.googlegroups.com!not-for-mail
References: <37d6d97e-88b4-4324-9973-a368959f8339@e27g2000yqd.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!news.uni-stuttgart.de!news.belwue.de!newsfeed01.sul.t-online.de!t-online.de!proxad.net!feeder1-2.proxad.net!74.125.46.134.MISMATCH!postnews.google.com!x20g2000vbn.googlegroups.com!not-for-mail
From: Łukasz Rekucki <lrekucki@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Python i importowanie
Date: Tue, 15 Dec 2009 15:15:00 -0800 (PST)
Organization: http://groups.google.com
Lines: 57
Message-ID: <c9272bd2-a51f-45dd-aee7-dfd281c34e18@x20g2000vbn.googlegroups.com>
References: <37d6d97e-88b4-4324-9973-a368959f8339@e27g2000yqd.googlegroups.com>
NNTP-Posting-Host: 212.76.62.207
Mime-Version: 1.0
X-Trace: posting.google.com 1260918901 26580 127.0.0.1 (15 Dec 2009 23:15:01 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 15 Dec 2009 23:15:01 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: x20g2000vbn.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.30 Safari/532.5,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit