在python标准库中寻找方法

时间:2016-12-15 04:28:57

标签: python python-2.7 standard-library

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

例如如果我打开re.py,我可以看到有findallsearch等特定方法。 当我做dir(re)时,情况也是如此。我可以清楚地看到上述方法。

同样,当我dir(os)时,存在一个名为system的方法,我通常使用os.system(cmd_name)来调用。

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

1 个答案:

答案 0 :(得分:5)

此功能未在os模块中定义,因此您无法在os.py中找到该定义。它从另一个模块导入os;哪个模块取决于您的操作系统。你可以查看:

>>> os.system.__module__
'nt'

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

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

事实证明,这些模块是用Modules/posixmodule.c中的C实现的。是的,nt模块是posixmodule.cposix模块也是如此。这很奇怪。