def index(self):
Jussi Salmela
tiedon_jano at hotmail.com
Mon Dec 18 15:58:35 EST 2006
Gert Cuykens kirjoitti:
> Is there a difference between
>
> <code>
> class HelloWorld:
> def index(self):
> index.exposed = True
> return "Hello world!"
> </code>
>
> and
>
> <code>
> class HelloWorld:
> def index(self):
> self.exposed = True
> return "Hello world!"
> </code>
The resident experts seemingly being absent for a while, I'll strike:
Yes: the first gives a runtime error and the second is OK.
I've renamed the second class to HelloWorld2 and then:
>>> hw = HelloWorld()
>>> hw2 = HelloWorld2()
>>> hw.index()
Traceback (most recent call last):
File "<pyshell#144>", line 1, in <module>
hw.index()
File "C:\Python\Dive into Python\Py\apihelper.py", line 40, in index
index.exposed = True
NameError: global name 'index' is not defined
>>> hw2.index()
'Hello world!'
The error message shows that the Python compiler has interpreted the
construction 'index.exposed' to refer to a global variable 'index' that
doesn't exist at run time. The second class succesfully defines an
instance attribute 'exposed' as can be seen by:
>>> print hw2.exposed
True
HTH
Jussi
More information about the Python-list
mailing list