Python:在对象上分配自定义属性

时间:2016-03-18 17:24:45

标签: python

当我尝试在object个实例上分配自定义属性时,会引发AttributeError

>>> o = object()
>>> o.hi = 'mom'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'hi'

大多数(所有?)内置类型都会发生同样的情况。

但是,当我创建普通object子类的实例时,会成功创建新属性:

>>> class foobar(object): pass
... 
>>> o = foobar()
>>> o.hi = 'mom'
>>> o.hi
'mom'

为什么会这样?我是否应该让我的类拒绝自定义属性以匹配object行为?如果是这样,怎么办呢?

0 个答案:

没有答案