Style question - defining immutable class data members

Maxim Khitrov mkhitrov at
Sat Mar 14 17:32:56 CET 2009

Very simple question on the preferred coding style. I frequently write
classes that have some data members initialized to immutable values.
For example:

class Test(object):
    def __init__(self):
        self.some_value = 0
        self.another_value = None

Similar effect can be achieved by defining some_value and
another_value for the entire class, like so:

class Test(object):
    some_value = 0
    another_value = None

The advantage of doing this is that the assignments are evaluated once
and thus the creation of that class is a bit faster. Access is still
performed through self.some_value and self.another_value. Is there a
reason to prefer the first style over the second?

- Max

More information about the Python-list mailing list