在Python中,对象()和类myClass(对象)之间__dict__的区别

Jam*_*zuy 12 python

我正在搞乱动态属性,我注意到如果我直接从object()类创建对象,我就不能使用__dict__属性,但是如果我创建一个新的类,它是对象的直接后代,我可以访问__dict__属性.为什么不同?

例子:

# This gives an AttributeError  
o = object()
o.__dict__
Run Code Online (Sandbox Code Playgroud)
# This works: prints {}
class myClass(object):
    pass
o = myClass()
o.__dict__
Run Code Online (Sandbox Code Playgroud)

kin*_*all 9

object在C中实现,没有__dict__属性.(并非所有Python对象都有它;查找__slots__).