python-模块

来源:互联网 发布:工业大数据行业分析 编辑:程序博客网 时间:2024/06/05 23:59

模块是程序
这个标题,一语道破了模块的本质,它就是一个扩展名为 .py 的 Python 程序。我们能够在应该使用它的时候将它引用过来,节省精力,不需要重写雷同的代码。
但是,如果我自己写一个 .py 文件,是不是就能作为模块 import 过来呢?还不那么简单。必须得让 Python 解释器能够找到你写的模块。
比如:在某个目录中,我写了这样一个文件:

#!/usr/bin/env Python# coding=utf-8lang = "python"

并把它命名为 pm.py,那么这个文件就可以作为一个模块被引入。不过由于这个模块是我自己写的,Python 解释器并不知道,我得先告诉它我写了这样一个文件。

>>> import sys>>> sys.path.append("~/Documents/VBS/StartLearningPython/2code/pm.py")

用这种方式就是告诉 Python 解释器,我写的那个文件在哪里。
我们在前面写有关程序,然后执行,常常要用到 if __name__ == "__main__"。那时我们写的 .py 文件是来执行的,这时我们同样写了 .py 文件,是作为模块引入的。这就得深入探究一下,同样是 .py 文件,它是怎么知道是被当做程序执行还是被当做模块引入?

如果要作为程序执行,则__name__ == "__main__";如果作为模块引入,则 pm.__name__ == "pm",即变量__name__的值是模块名称。
用这种方式就可以区分是执行程序还是作为模块引入了。
模块的位置
为了让我们自己写的模块能够被 Python 解释器知道,需要用 sys.path.append(“~/Documents/VBS/StarterLearningPython/2code/pm.py”)。其实,在 Python 中,所有模块都被加入到了 sys.path 里面了。
sys.path是放在目录/usr/lib/Python2.7/dist-packages。
也就是,要将模块文件放到合适的位置——就是 sys.path 包括位置——就能够直接用 import 引入了。
PYTHONPATH 环境变量
将模块文件放到指定位置是一种不错的方法。当程序员都喜欢自由,能不能放到别处呢?当然能,用 sys.path.append() 就是不管把文件放哪里,都可以把其位置告诉 Python 解释器。但是,这种方法不是很常用。因为它也有麻烦的地方,比如在交互模式下,如果关闭了,然后再开启,还得从新告知。
比较常用的告知方法是设置 PYTHONPATH 环境变量。

__init__.py方法
__init__.py 是一个空文件,将它放在某个目录中,就可以将该目录中的其它 .py 文件作为模块被引用

0 0
原创粉丝点击