用法:
dir([object])
不带参数,返回当前本地范围内的名称列表。使用参数,尝试返回该对象的有效属性列表。
如果对象有一个名为
__dir__()
的方法,则将调用此方法并且必须返回属性列表。这允许实现自定义__getattr__()
或__getattribute__()
函数的对象自定义dir()
报告其属性的方式。如果对象不提供
__dir__()
,则函数会尽力从对象的__dict__
属性(如果已定义)及其类型对象中收集信息。结果列表不一定完整,并且当对象具有自定义__getattr__()
时可能不准确。默认的
dir()
机制对不同类型的对象表现不同,因为它试图产生最相关的,而不是完整的信息:- 如果对象是模块对象,则列表包含模块属性的名称。
- 如果对象是类型或类对象,则列表包含其属性的名称,并递归地包含其基类的属性。
- 否则,该列表包含对象的属性名称、其类的属性名称以及其类的基类属性的递归名称。
结果列表按字母顺序排序。例如:
>>> import struct >>> dir() # show the names in the module namespace ['__builtins__', '__name__', 'struct'] >>> dir(struct) # show the names in the struct module ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] >>> class Shape: ... def __dir__(self): ... return ['area', 'perimeter', 'location'] >>> s = Shape() >>> dir(s) ['area', 'location', 'perimeter']
注意
因为提供
dir()
主要是为了方便在交互式提示中使用,所以它尝试提供一组有趣的名称,而不是尝试提供一组严格或一致定义的名称,并且其详细行为可能会随版本而变化。例如,当参数是类时,元类属性不在结果列表中。
相关用法
- Python dir()用法及代码示例
- Python distributed.protocol.serialize.register_generic用法及代码示例
- Python dict()用法及代码示例
- Python distributed.Client.gather用法及代码示例
- Python distributed.recreate_tasks.ReplayTaskClient.recreate_task_locally用法及代码示例
- Python distributed.diagnostics.plugin.SchedulerPlugin用法及代码示例
- Python distributed.Client.ncores用法及代码示例
- Python distributed.Client.retire_workers用法及代码示例
- Python distributed.Client.unregister_worker_plugin用法及代码示例
- Python dictionary update()用法及代码示例
- Python distributed.fire_and_forget用法及代码示例
- Python distributed.Client.set_metadata用法及代码示例
- Python distributed.Client.scheduler_info用法及代码示例
- Python distributed.Client.submit用法及代码示例
- Python distributed.Client.compute用法及代码示例
- Python distributed.SpecCluster.scale用法及代码示例
- Python dictionary values()用法及代码示例
- Python distributed.get_worker用法及代码示例
- Python distributed.SpecCluster.scale_up用法及代码示例
- Python difflib.unified_diff用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 dir。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。