在我的python标准库(Python 2.7
)中,我正在寻找模块中的特定方法。
例如如果我打开re.py
,我可以看到有findall
,search
等特定方法。
当我做dir(re)
时,情况也是如此。我可以清楚地看到上述方法。
同样,当我dir(os)
时,存在一个名为system
的方法,我通常使用os.system(cmd_name)
来调用。
但是当我在os.py
下查找此方法时,它不存在。难道我做错了什么?请指导
答案 0 :(得分:5)
此功能未在os
模块中定义,因此您无法在os.py
中找到该定义。它从另一个模块导入os
;哪个模块取决于您的操作系统。你可以查看:
>>> os.system.__module__
'nt'
在这里,您可以看到,因为我在Windows上,os.system
来自nt
模块。
您可能会发现os.system.__module__
是'nt'
或'posix'
,代表nt
或posix
模块。那么问题是,这些模块在哪里定义?没有nt.py
或posix.py
。
事实证明,这些模块是用Modules/posixmodule.c
中的C实现的。是的,nt
模块是posixmodule.c
,posix
模块也是如此。这很奇怪。