Colin J. Williams wrote: > rzed wrote: >> class T(object): >> def __new__(self): >> self.a = 1 >> ... >> t = T() >> >> and I want to examine the 'a' attributes. >> >>>>> print T.a >> 1 >>>>> print t.a >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> AttributeError: 'NoneType' object has no attribute 'a' >> >> So what the heck is 'T'? It seems that I can't instantiate it or >> derive from it, so I guess it isn't a proper class. But it's >> something; it has an attribute. What is it? How would it be used (or, >> I guess, how should the __new__() method be used)? Any hints? >> > __new__ should return something. Since there is no return statement, > None is returned. > > You might try something like: > > class T(object): > def __new__(cls): > cls= object.__new__(cls) > cls.a= 1 > return cls > t= T() > print t.a
Or, to use a bit more revealing names: class NewT(object): def __new__(class_): instance = object.__new__(class_) instance.a = 1 return instance You might have figured more of this out with: >>> t = T() >>> print repr(t) >>> newt = NewT() >>> print repr(newt) >>> T.a >>> t.a --Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list