Class Variable Access and Assignment
Christopher Subich
csubich.spam.block at spam.subich.block.com
Fri Nov 4 10:28:52 EST 2005
Antoon Pardon wrote:
>>Since ints are immutable objects, you shouldn't expect the value of b.a
>>to be modified in place, and so there is an assignment to b.a, not A.a.
>
>
> You are now talking implementation details. I don't care about whatever
> explanation you give in terms of implementation details. I don't think
> it is sane that in a language multiple occurence of something like b.a
> in the same line can refer to different objects
>
This isn't an implementation detail; to leading order, anything that
impacts the values of objects attached to names is a specification issue.
An implementation detail is something like when garbage collection
actually happens; what happens to:
b.a += 2
is very much within the language specification. Indeed, the language
specification dictates that an instance variable b.a is created if one
didn't exist before; this is true no matter if type(b.a) == int, or if
b.a is some esoteric mutable object that just happens to define
__iadd__(self,type(other) == int).
More information about the Python-list
mailing list