classmethod & staticmethod

Steven D'Aprano steve at
Thu Jul 26 03:12:01 CEST 2007

On Wed, 25 Jul 2007 00:55:17 +0000, Alex Popescu wrote:

> Neil Cerutti <horpner at> wrote in news:eRwpi.36813$G23.28496
>> On 2007-07-25, Alex Popescu <nospam.themindstorm at> wrote:
>>> As a matter of style, how do you figure out that class_list is
>>> a class attribute and not an instance attribute? (I don't
>>> remember seeing anything in the PEP describing the coding
>>> style).
>> Check out dir(MyClass) and dir(MyClass()) for some insight, if it
>> turns out that it matters. 
> I must confess that I am a bit confused by this advise, as both are 
> returning exactly the same thing.
>> Preferably, the user of a class
>> doesn't have to really think about it much.
> I know that this would be prefered, but in case you are getting 3rd party 
> code and you modify a class attribute without knowing it is a class 
> attribute then you may get into trouble (indeed the real problem is with 
> the designer of the 3rd party code, but still I think it is a valid 
> concern).

# warning: doesn't consider slots
if "attribute" in instance.__dict__:
    print "instance attribute"
elif "attribute" in instance.__class__.__dict__:
    print "class attribute"
    print "either no attribute at all, or in a parent class"


More information about the Python-list mailing list