Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #30086
| From | Peter Otten <__peter__@web.de> |
|---|---|
| Subject | Re: data attributes override method attributes? |
| Date | 2012-09-25 16:08 +0200 |
| Organization | None |
| References | <931902e1-570b-4288-bb9b-de711318c5cd@googlegroups.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1338.1348582105.27098.python-list@python.org> (permalink) |
Jayden wrote:
> In the Python Tutorial, Section 9.4, it is said that
>
> "Data attributes override method attributes with the same name."
The tutorial is wrong here. That should be
"Instance attributes override class attributes with the same name."
As methods are usually defined in the class and data attributes are usually
set in the instance it will look like data override method attributes.
What the author had in mind:
>>> class A:
... def i(self): print "method"
...
>>>
>>> a = A()
>>> a.i()
method
>>> a.i = 42 # this could also happen in a method with self.i = 42
>>> a.i()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> a.i
42
> But in my testing as follows:
>
> #Begin
> class A:
> i = 10
> def i():
> print 'i'
>
> A.i
> <unbound method A.i>
> #End
but
class A:
def i(self): print "i"
i = 42
print A().i # 42
If two objects are assigned to the same name the last assignment always
wins.
> I think A.i should be the number 10 but it is the method. There must be
something I misunderstand. Would you please tell me why?
No, you're right. Please file a bug report at http://bugs.python.org
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
data attributes override method attributes? Jayden <jayden.shui@gmail.com> - 2012-09-25 06:41 -0700
Re: data attributes override method attributes? alex23 <wuwei23@gmail.com> - 2012-09-25 06:52 -0700
Re: data attributes override method attributes? Peter Otten <__peter__@web.de> - 2012-09-25 16:08 +0200
Re: data attributes override method attributes? alex23 <wuwei23@gmail.com> - 2012-09-25 07:11 -0700
Re: data attributes override method attributes? Peter Otten <__peter__@web.de> - 2012-09-25 16:54 +0200
Re: data attributes override method attributes? Chris Angelico <rosuav@gmail.com> - 2012-09-26 01:03 +1000
Re: data attributes override method attributes? Ulrich Eckhardt <ulrich.eckhardt@dominolaser.com> - 2012-09-25 16:54 +0200
Re: data attributes override method attributes? Terry Reedy <tjreedy@udel.edu> - 2012-09-25 15:58 -0400
Re: data attributes override method attributes? Ian Kelly <ian.g.kelly@gmail.com> - 2012-09-25 14:07 -0600
Re: data attributes override method attributes? Terry Reedy <tjreedy@udel.edu> - 2012-09-25 16:18 -0400
Re: data attributes override method attributes? Terry Reedy <tjreedy@udel.edu> - 2012-09-25 16:34 -0400
RE: data attributes override method attributes? "Prasad, Ramit" <ramit.prasad@jpmorgan.com> - 2012-09-28 18:02 +0000
Re: data attributes override method attributes? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-29 03:20 +0000
Re: data attributes override method attributes? Ian Kelly <ian.g.kelly@gmail.com> - 2012-09-28 12:25 -0600
Re: data attributes override method attributes? Terry Reedy <tjreedy@udel.edu> - 2012-09-28 14:26 -0400
Re: data attributes override method attributes? Thomas Rachel <nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915@spamschutz.glglgl.de> - 2012-09-25 21:52 +0200
Re: data attributes override method attributes? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-25 14:12 +0000
csiph-web