__name__ on new-style classes

Gonçalo Rodrigues op73418 at mail.telepac.pt
Sun Mar 31 20:17:03 EST 2002


One can change the name of a classic class but not of a new-style one
(see below for example). Is this a bug or a feature, and if the latter
is there any reason for the change?

>>> class Test(int):
... 	pass
... 
>>> Test
<class '__main__.Test'>
>>> Test.__name__
'Test'
>>> Test.__name__ = "Weirdo"
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
TypeError: attribute '__name__' of 'type' objects is not writable
>>> class Test:
... 	pass
... 
>>> Test.__name__
'Test'
>>> Test.__name__ = "Weirdo"
>>> Test.__name__
'Weirdo'




More information about the Python-list mailing list