Ross Williamson wrote: > Hi Everyone, > > Just a quick question - Is it possible to assign class variables in > the __init__() - i.e. somthing like: > > def __init__(self,self.source = "test", self.length = 1) > > rather than > > def __init__(self,source = "test", length = 1):
No. If you are just lazy, try >>> import sys >>> def update_self(): ... d = sys._getframe(1) ... d = d.f_locals ... self = d.pop("self") ... for k, v in d.iteritems(): ... setattr(self, k, v) ... >>> class A(object): ... def __init__(self, source="test", length=1): ... update_self() ... def __repr__(self): ... return "A(source=%r, length=%r)" % (self.source, self.length) ... >>> A() A(source='test', length=1) >>> A(length=42) A(source='test', length=42) Personally, I prefer explicit assignments inside __init__(). Peter -- http://mail.python.org/mailman/listinfo/python-list