Access from class variable to one on constructor
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Mon Feb 23 23:50:18 EST 2009
On Mon, 23 Feb 2009 08:02:17 -0200, Gabriel Genellina wrote:
> En Mon, 23 Feb 2009 07:40:47 -0200, Kless <jonas.esp at googlemail.com>
> escribió:
>
>> How to access from a class variable to one that is initialized on the
>> constructor?
>> --------------
>> class Foo():
>> foo = bar # I want to access *from here* to variables created on
>> the constructor.
>>
>> def __init__(self, bar_init):
>> self.bar = bar_init
>> --------------
>
> Unless I misunderstand you, you can't do that. Class variables are
> shared by all instances and don't depend on a particular instance - they
> exist even *before* any instance is created.
Please don't use the term "class variables" to mean class *attributes*,
it makes my brain hurt. If a string variable is a string, and an int
variable is an int, and a bool variable is a bool, a class variable
should be a class.
What you can do is shift the creation of the class attribute to the
constructor, instead of when the class is created:
class Spam():
def __init__(self, bar_init):
self.__class__.foo = bar_init
But I'm not sure why you would want to.
--
Steven
More information about the Python-list
mailing list