Stef Mientki wrote: > Not sure I wrote the subject line correct, > but the examples might explain if not clear [snip] > class pin2: > def __init__ (self, naam): > self.Name = naam > > aap2 = pin2('aap2') # seems completely redundant to me. > print aap2.Name
You can use class statements to create your instances with some metaclass trickery. Unlike normal assignments, class statements get access to the name being assigned. So you could write your class like:: >>> class pin(object): ... def __init__(self, name): ... self.name = name ... @classmethod ... def from_class_block(cls, name, bases, block_dict): ... return cls(name) ... And then use class statements to create instances of the ``pin`` class:: >>> class aap: ... __metaclass__ = pin.from_class_block ... >>> print aap.name aap >>> type(aap) <class '__main__.pin'> Of course, using class statements to create *instances* of a class is confusing. And it's more verbose than simply repeating the name when you call the constructor. But at least it avoids the redundancy. ;-) STeVe -- http://mail.python.org/mailman/listinfo/python-list