以下代码运行良好,没有错误:
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
创建对象时为什么会出错?
答案 0 :(得分:1)
根据W3Schools:
object()函数返回一个空对象。
您不能向该对象添加新的属性或方法。
运行快速类型比较:
>>> type(a)
<class '__main__.A'>
>>> type(o)
<class 'object'>
表明a
和o
根本不同。
Note对象没有 dict ,因此您不能将任意属性分配给对象类的实例。