🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Python i importowanie

#27052
From: Michal M
Date: Sun, 20 Dec 2009 21:10
59 lines
2747 bytes
Ok, ten sam problem się powtórzył. Tym razem podam dokładnie przykład.

module1.py
log = None

module2.py
class Log(object):
    def __init__(self):
        pass
    def m(self):
        print "ok"

module3.py
import module1
import module2
import module4

module1.log = module2.Log()
t = module4.Test()
t.use_m()

module4.py
from module1 import log

class Test(object):
    def __init__(self):
        pass
    def use_m(self):
        log.m()


Uruchamiam moduł 3. Ja to widzę tak:
1. importuje moduły 1, 2 i 3 (czyli udostępnia ich przestrzeń poprzez
nazwę modułu w module 3)
2. pod zmienną log w module 1 podstawia instancję klasy Log z modułu 2
3. Pod zmienną t podstawia instancję klasy Test z modułu 4 i próbuje
wykonać jej metodę use_m()
W tym miejscu otrzymuję błąd: AttributeError: 'NoneType' object has no
attribute 'm'

Teraz powiedzmy, że moduł 4 zmienię tak:

module4.py
import module1

class Test(object):
    def __init__(self):
        pass
    def use_m(self):
        module1.log.m()

Czyli wg mnie powinno być to samo, tyle że zamiast bezpośrednio do log
mam dostęp poprzez module1.log.
Zastanawiałem się, czy może samo log.m() nie widzi jako zmiennej
lokalnej i nie potrzeba dodać global log ale też nie pomaga.
Proszę o wyjaśnienie.

Pozdrawiam
Michał
Technical Details
Message-ID: <30287087-8528-4210-9ba0-0f4c7784279a@h9g2000yqa.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!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!h9g2000yqa.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>

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!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!h9g2000yqa.googlegroups.com!not-for-mail
From: Michal M <mmierzwa@tycowaterworks.pl>
Newsgroups: pl.comp.lang.python
Subject: Re: Python i importowanie
Date: Sun, 20 Dec 2009 13:10:52 -0800 (PST)
Organization: http://groups.google.com
Lines: 64
Message-ID: <30287087-8528-4210-9ba0-0f4c7784279a@h9g2000yqa.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>
NNTP-Posting-Host: 93.179.233.50
Mime-Version: 1.0
X-Trace: posting.google.com 1261343452 21019 127.0.0.1 (20 Dec 2009 21:10:52 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sun, 20 Dec 2009 21:10:52 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: h9g2000yqa.googlegroups.com; posting-host=93.179.233.50;  posting-account=dY1QvgoAAADCWl8YwEq83L_41SxqMaon
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)  AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit