Seo Sanghyeon wrote:
> Exception for setting attributes of built-in type differs between> CPython and IronPython. This is not purely theoretical, as> zope.interface tries to set Implements declaration as __implemented__> attribute of built-in type object, and excepts TypeError.> > Python 2.6.1>>>> object.flag = True> TypeError: can't set attributes of built-in/extension type 'object'> > IronPython 2.6>>>> object.flag = True> AttributeError: 'object' object has no attribute 'flag'> > I was surprised that CPython raises TypeError. Library Reference seems> to mention it here:> > exception AttributeError> Raised when an attribute reference or assignment fails. (When an> object does not support attribute references or attribute assignments> at all, TypeError is raised.)> http://docs.python.org/library/exceptions.html> > What does it mean that "an object does not support attribute> references or attribute assignments at all"?
I see it as slightly ambiguous:
1. It neither supports references nor assignments.
2. It either does not support reference or it does not support assignments.
1 could hardly apply any more, certainly to built-ins since everything
now has attributes. 2 covers object, so if that is meant, then
TypeError is appropriate.
Or were you unclear about 'at all', which means 'never'?
Terry Jan Reedy