例如,我定义一个类:
class Test(object):
pass
print dir(Test)
得到以下结果:
['__class__','__delattr__','__dict__','__doc__','__format__','__getattribute__', '__hash__', '__init__', '__module__', '__new__','__reduce__','__reduce_ex__', '__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','__weakref__']
打印测试。name获取以下结果:测试
我的问题是在Test中没有名称,为什么可以打印Test。name, name;
的搜索策略是什么任何答案将不胜感激,谢谢!
它在Test.__class__
的dir
中,因为__name__
是在type
类型上定义的:
>>> Test.__name__
'Test'
>>> Test.__class__
<type 'type'>
>>> dir(Test.__class__)
[..., '__mro__', '__name__', '__ne__', ...]
如果在类(type
的实例)上找不到什么,它会在类的元类(通常是type
)中查找。