AttributeError:'object'对象没有属性'attr'

时间:2019-10-24 23:08:30

标签: python object inheritance

以下代码运行良好,没有错误:

class A(object):
  pass

a = A()
a.attr = True

运行以下代码:

o = object()
o.attr = True

引发以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-54-9fd7259047d0> in <module>()
      1 o = object()
----> 2 o.attr = True

AttributeError: 'object' object has no attribute 'attr'

为什么?类A继承自object,那么为什么从类object创建对象时为什么会出错?

1 个答案:

答案 0 :(得分:1)

根据W3Schools

  

object()函数返回一个空对象。

     

您不能向该对象添加新的属性或方法。

运行快速类型比较:

>>> type(a)
<class '__main__.A'>
>>> type(o)
<class 'object'>

表明ao根本不同。

来自Python documentation

  

Note对象没有 dict ,因此您不能将任意属性分配给对象类的实例。