对Python模块及其中的函数感到困惑
为了简明扼要地描述我的问题,请看下面的例子:
模块
os
有一个函数getcwd()
,它可以返回当前的工作目录。但是在/usr/lib/python2.7/os.py
文件中没有关于os.getcwd()
的详细信息。那这个函数的实现在哪里呢?os.path
也是 Python 中的一个模块,但在/usr/lib/python2.7
目录下并没有名为os.path
的文件。那么当你在 Python 脚本中使用import os.path
时,实际上是导入了哪个文件呢?
感谢大家的帮助...
4 个回答
1
如果你在使用POSIX系统(比如Linux或Mac OS X),那么os.py文件中的这些代码会引入相关的功能:
from posix import *
import posixpath as path
而在Windows系统上:
from nt import *
import ntpath as path
(还有一些其他选项是为了不太常见的系统)
需要注意的是,使用from x import *
这种写法通常是不太推荐的。这算是一种特殊情况。
2
模块不一定非得是Python脚本。你可以使用C-API来用C或C++编写模块。你可以把它们编译成动态库,这样解释器就可以动态加载这些库,或者你也可以重新编译解释器,把模块直接链接到里面。