__baz = 23
让我们看看这个对象的属性使用内置的dir()函数:
>>> t = Test()
>>> dir(t)
['_Test__baz', '__class__', '__delattr...'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'__weakref__', '_bar', 'foo']
这会给我们一个带有对象属性的列表...当在该列表中搜索_baz时,将看到没有具有该名称的变量。
那么,到底发生了什么呢?
如果仔细查看,就会看到这个对象上有一个名为_testbaz的属性。这是Python解释器应用的命名混乱。...AttributeError ?...事实证明,这个对象甚至没有一个_baz属性:
>>> dir(t2)
['_ExtendedTest__baz', '_Test__baz', '__class__', '__delattr__',