关于Python中dir函数的一个小疑问
>随后,我们以不传递参数的形式使用 dir 函数。在默认情况下,它将返回当前模块的属性列表。要注意到被导入进来的模块所能生成的列表也会是这一列表的一部分。
#给出当前模块的属性名称
dir()
[‘builtins’, ‘doc’, ‘name’, ‘package’]
这个“返回当名模块”的到底是哪个模块? 模块名是什么?
比如下面这个例子:
import sys
#给出 sys 模块中的属性名称
dir(sys)
[‘displayhook’, ‘doc’, ‘argv’, ‘builtin_module_names’, ‘version’, ‘version_info’]
#only few entries shown here
这个例子中很明显导入的是 sys 模块。
求指教。
Byte Of Python 73P
关于Python中dir函数的一个小疑问
3 回复
dir()函数是Python的内置函数,用来列出对象的属性(包括方法、变量等)。不带参数时,它返回当前作用域内的名称列表;带参数时,返回该对象的所有属性名列表。
比如:
class MyClass:
def __init__(self):
self.x = 10
def method(self):
pass
obj = MyClass()
print(dir(obj)) # 会显示 obj 的所有属性,包括 x 和 method
它常用于交互式环境(如IPython)中快速查看对象能做什么,但注意它可能返回大量内置属性(那些以双下划线开头和结尾的)。
如果想过滤掉内置属性,可以这样:
[name for name in dir(obj) if not name.startswith('__')]
总结:dir() 是快速探索对象结构的实用工具。
Python 中每个文件就是一个模块,dir()得到当前文件中的所有全局名字。当前模块名就是当前文件的名字。

