用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。