在 python 标准库中寻找方法
looking for method in python standard library
在我的 python 标准库(Python 2.7
)中,我正在寻找模块中的特定方法。
例如如果我打开 re.py
,我可以看到有特定的方法,例如 findall
、search
等。
当我做 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'
,代表 nt
或 posix
模块。那么问题是,这些模块在哪里定义的?没有 nt.py
或 posix.py
.
原来这些模块是用 C 实现的,在 Modules/posixmodule.c
中。是的,nt
模块是posixmodule.c
,posix
模块也是。很奇怪。
在我的 python 标准库(Python 2.7
)中,我正在寻找模块中的特定方法。
例如如果我打开 re.py
,我可以看到有特定的方法,例如 findall
、search
等。
当我做 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'
,代表 nt
或 posix
模块。那么问题是,这些模块在哪里定义的?没有 nt.py
或 posix.py
.
原来这些模块是用 C 实现的,在 Modules/posixmodule.c
中。是的,nt
模块是posixmodule.c
,posix
模块也是。很奇怪。