Class Variable Access and Assignment

Antoon Pardon apardon at forel.vub.ac.be
Thu Nov 3 06:55:06 EST 2005


Op 2005-11-03, Steven D'Aprano schreef <steve at REMOVETHIScyber.com.au>:

>> There are two possible fixes, either by prohibiting instance variables
>> with the same name as class variables, which would allow any reference
>> to an instance of the class assign/read the value of the variable. Or
>> to only allow class variables to be accessed via the class name itself.
>
> There is also a third fix: understand Python's OO model, especially
> inheritance, so that normal behaviour no longer surprises you.

No matter wat the OO model is, I don't think the following code
exhibits sane behaviour:

class A:
  a = 1

b = A()
b.a += 2
print b.a
print A.a

Which results in

3
1

-- 
Antoon Pardon



More information about the Python-list mailing list