Python dir()内置函数 --返回对象的属性列表
dir()
函数用于返回一个对象的属性列表。如果没有实参,则返回当前本地作用域中的名称列表;如果有实参,它会尝试返回该对象的有效属性列表。返回的列表按字母排序
如果对象有一个名为 __dir__()
的方法,那么该方法将被调用,并且必须返回一个属性列表;如果对象不提供 __dir__()
,该方法将最大限度地收集参数信息
格式及参数
1 | dir([object]) |
object
:一个对象,可以是模块、类型、类对象、变量
实例(python3.8.8)
无实参
1 | import re |
输出
1 | ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 're', 'time'] |
有实参
如果对象是模块对象,则列表包含模块的属性名称
1 | import re |
输出
1 | ['A', 'ASCII', 'DEBUG', 'DOTALL', 'I', 'IGNORECASE', 'L', 'LOCALE', 'M', 'MULTILINE', 'Match', 'Pattern', 'RegexFlag', 'S', 'Scanner', 'T', 'TEMPLATE', 'U', 'UNICODE', 'VERBOSE', 'X', '_MAXCACHE', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', '_cache', '_compile', '_compile_repl', '_expand', '_locale', '_pickle', '_special_chars_map', '_subx', 'compile', 'copyreg', 'enum', 'error', 'escape', 'findall', 'finditer', 'fullmatch', 'functools', 'match', 'purge', 'search', 'split', 'sre_compile', 'sre_parse', 'sub', 'subn', 'template'] |
如果对象是类型或类对象,则列表包含它们的属性名称,并且递归查找所有基类的属性
1 | class yu(): |
其它情况下,列表包含对象的属性名称,它的类属性名称,并且递归查找它的类的所有基类的属性