在 python 标准库中寻找方法

looking for method in python standard library

在我的 python 标准库(Python 2.7)中,我正在寻找模块中的特定方法。

例如如果我打开 re.py,我可以看到有特定的方法,例如 findallsearch 等。 当我做 dir(re) 时,同样明显。我可以清楚地看到上面的方法。

类似地,当我执行 dir(os) 时,存在一个名为 system 的方法,我通常使用 os.system(cmd_name).

调用它

但是当我在os.py下寻找这个方法时,它不存在。难道我做错了什么?请指导

这个函数没有在os模块中定义,所以你不会在os.py中找到定义。它是从另一个模块导入到 os 中的;哪个模块取决于您的操作系统。您可以查看:

>>> os.system.__module__
'nt'

在这里,你可以看到,因为我在 Windows,os.system 来自 nt 模块。


您可能会发现 os.system.__module__'nt''posix',代表 ntposix 模块。那么问题是,这些模块在哪里定义的?没有 nt.pyposix.py.

原来这些模块是用 C 实现的,在 Modules/posixmodule.c 中。是的,nt模块是posixmodule.cposix模块也是。很奇怪。