On Fri, 04 Nov 2005 10:28:52 -0500, Christopher Subich <[EMAIL PROTECTED]> 
wrote:

>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).
But if it is an esoteric descriptor (or even a simple property, which is
a descriptor), the behaviour will depend on the descriptor, and an instance
variable can be created or not, as desired, along with any side effect you like.

Regards,
Bengt Richter
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to