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


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to