[Python-Dev] Exception for setting attributes of built-in type (original) (raw)

Terry Reedy tjreedy at udel.edu
Mon Jun 15 00:40:56 CEST 2009


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



More information about the Python-Dev mailing list