Python dir() 和 __dir__

来源:互联网 发布:java获取上传文件名称 编辑:程序博客网 时间:2024/05/21 14:06

dir()

1. dir() 是一个函数, 返回list

2. dir() 输出对象的所有属性,包括__dir__ 中的属性, __dir__ 是dir 的子集


__dir__

1. 返回的是一个字典

2. 并不是所有的对象都有__dir__ 属性, 许多内建类型就没有__dir__, 如list

3. python的实例拥有它们自己的__dict__,而它们对应的类也有自己的__dict__:


>>> class Foo(object):...     bar = 'spam'... >>> Foo().__dict__{}>>> Foo.__dict__dict_proxy({'__dict__': <attribute '__dict__' of 'Foo' objects>, '__weakref__': <attribute '__weakref__' of 'Foo' objects>, '__module__': '__main__', 'bar': 'spam', '__doc__': None})

dir()函数会遍历Foo,Foo()和object的__dict__属性,从而为Foo类,它的实例以及它所有的被继承类创建一个完整有效的属性列表。

原创粉丝点击