📜  Python dir()(1)

📅  最后修改于: 2023-12-03 15:18:54.848000             🧑  作者: Mango

Python dir()

Python dir()是一个内置函数,用于返回当前作用域的所有名称列表。默认情况下,它列出了当前命名空间中存在的所有名称。 如果给出一个对象,它将返回该对象的属性列表。

语法
dir([object])

参数:

  • object(可选)- 对象的名称。如果省略,则列出当前作用域的所有名称。

返回值:

  • 如果没有参数,则返回当前作用域中所有名称的列表。
  • 如果传递了参数,则返回该对象的属性列表。
实例
示例1
# 列出当前命名空间
print(dir())

# 列出sys模块的属性
import sys
print(dir(sys))

输出:

['In', 'Out', '_', '__', '___', '__builtin__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '_dh', '_i', '_i1', '_ih', '_ii', '_iii', '_oh', 'exit', 'get_ipython', 'quit', 'sys']
['__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_enablelegacywindowsfsencoding', '_execvpe', '_getframe', '_git', '_home', '_isfinalizing', '_item_from_env', '_mercurial', '_msi', '_node', '_pickle', '_program', '_remove_duplicates', '_repr_mimebundle_', '_version', 'api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode'...
示例2
class MyClass:
    def __init__(self):
        self.x = 1
        self.y = 2
        self.z = 'hello'

my_object = MyClass()

# 列出对象my_object的属性
print(dir(my_object))

输出:

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x', 'y', 'z']
总结

Python dir()函数是一个常用的内置函数,它可以快速帮我们查看当前作用域的所有名称列表,或查看一个对象的属性。在使用Python进行编程时,我们通常可以使用dir()函数进行一些快速排查和调试。