📜  Python dir()函数(1)

📅  最后修改于: 2023-12-03 14:45:57.506000             🧑  作者: Mango

Python dir()函数

dir() 函数是 Python 内置函数之一,用于获取当前作用域内的所有变量、函数、类、模块等对象的名称列表。可以用于快速查看一个对象(如模块、函数、类)的所有成员,也可以用于了解当前作用域内的所有变量和函数。

语法

dir([object])

参数

object:可选参数,若不提供则返回当前作用域内的名称列表;若提供,则返回该对象的名称列表。

返回值

返回一个列表,包含给定对象(若提供)的所有属性名称,或当前作用域内的所有名称。名称列表按字母顺序排序。

例子
# 获取当前作用域内的所有名称
print(dir())

# 获取math模块中的所有名称
import math
print(dir(math))

# 获取list类型的所有方法
my_list = []
print(dir(my_list))

输出结果:

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'math', 'my_list']
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
注意事项
  • dir() 函数不会返回以双下划线开头和结尾的特殊属性,如 __name____doc__,若想查看这些属性,可以直接使用对象的 __dict__ 属性或 getattr() 函数。
  • dir() 函数不能列出生成器 generator 的属性,因为生成器是可迭代对象,而不是真正的对象,所以不能用 dir() 函数获取其属性名列表。