Article View: pl.comp.lang.python
Article #27225Re: class A: print A
From: tikan
Date: Tue, 19 Jan 2010 10:55
Date: Tue, 19 Jan 2010 10:55
41 lines
2368 bytes
2368 bytes
On 18 Sty, 22:43, Łukasz Rekucki <lreku...@gmail.com> wrote:
> On Jan 18, 8:24 pm, tikan <tik...@gmail.com> wrote:
>
> > Witam
>
> > class A:
> > print A
>
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > File "<stdin>", line 2, in A
> > NameError: name 'A' is not defined
>
> > Jak wyjaśnić takie zachowanie interpretera?
>
> Tym, że w trakcie wykonywania ciała klasy A, jeszcze jej nie ma. Więc
> skoro w aktualnym bloku nie ma nazwy "A" i w aktualnym module też nie
> ma nazwy "A", to znaczy, że jej nie ma. Co się spodziewałeś uzyskać ?
>
>
>
>
>
> > Pozdrawiam
> > Krzysztof Chmiel
Spodziewałem się, że nazwa klasy jest wpisywana do słownika modułu w
linijce class A:
Problem wziął się stąd, że chciałem utworzyć dekorator do metody klasy
przyjmujący obiekt klasy jako argument
class A:
@my_decorator(A)
def f(self):
pass
Ale jak widać nie działa to tak. Może i słusznie, bo w momencie
wywoływania dekoratora nie byłyby znane wszystkie atrybuty klasy i
działanie kodu
byłoby zależne od kolejności definicji funkcji w klasie.
Pozdrawiam
Krzystof Chmiel
Technical Details
Message-ID:
<ac53f534-6955-4df7-a405-ae545c0fb8c6@h2g2000yqj.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!h2g2000yqj.googlegroups.com!not-for-mailReferences:
<2c102a9d-5722-4565-8562-346d08ec395d@34g2000yqp.googlegroups.com> <eb25832e-a736-4163-b0ef-de2fafe611b5@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!news.glorb.com!postnews.google.com!h2g2000yqj.googlegroups.com!not-for-mail From: tikan <tikan2@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: class A: print A Date: Tue, 19 Jan 2010 02:55:57 -0800 (PST) Organization: http://groups.google.com Lines: 45 Message-ID: <ac53f534-6955-4df7-a405-ae545c0fb8c6@h2g2000yqj.googlegroups.com> References: <2c102a9d-5722-4565-8562-346d08ec395d@34g2000yqp.googlegroups.com> <eb25832e-a736-4163-b0ef-de2fafe611b5@k17g2000yqh.googlegroups.com> NNTP-Posting-Host: 213.180.137.172 Mime-Version: 1.0 X-Trace: posting.google.com 1263898557 13291 127.0.0.1 (19 Jan 2010 10:55:57 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 19 Jan 2010 10:55:57 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: h2g2000yqj.googlegroups.com; posting-host=213.180.137.172; posting-account=SQnbsAoAAAAwrHvztykwXpM70ECXxG0y User-Agent: G2/1.0 X-HTTP-UserAgent: Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.10,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit