python(19模块补充)
import模块
在Python经常使用import声明,以使用其他模块(也就是其它.py文件)中定义的对象。
(1) 使用__name__
当我们编写Python库模块的时候,我们往往运行一些测试语句。当这个程序作为库被import 的时候,我们并不需要运行这些测试语句。一种解决方法是在import之前,将模块中的测试 语句注释掉。
Python有一种更优美的解决方法,就是使用__name__。 下面是一个简单的库程序TestLib.py。当直接运行TestLib.py时,__name__为"main"。 如果被import的话,__name__为"TestLib"。
def lib_func(a):
return a + 10
def lib_func_another(b):
return b + 20
if__name__ == '__main__':
test = 101
print(lib_func(test))
我们在user.py中import上面的TestLib。
import TestLib
print(TestLib.lib_func(120))
你可以尝试不在TestLib.py中使用if name==‘main’, 并对比运行结果。
(2) 更多import使用方式
import TestLib as test # 引用TestLib模块,并将它改名为t 比如:
import TestLib as t
print(t.lib_func(120))
from TestLib import lib_func # 只引用TestLib中的lib_func对象,并跳过TestLib引用字段 这样的好处是减小所引用模块的内存占用。
比如
:
from TestLib import lib_func
print(lib_func(120))
from TestLib import * # 引用所有TestLib中的对象,并跳过TestLib引用字段 比如:
from TestLib import *
print(lib_func(120))
搜索路径
当我们import的时候,Python会在搜索路径中查找模块(module)。比如上面import TestLib,就要求TestLib.py在搜索路径中。
我们可以通过下面方法来查看搜索路径:
import sys
rint(sys.path)
我们可以在Python运行的时候增加或者删除sys.path中的元素。另一方面,我们可以通过在shell中增加PYTHONPATH环境变量,来为Python增加搜索路径。
下面我们增加/home/vamei/mylib到搜索路径中:
e
x
p
o
r
t
P
Y
T
H
O
N
P
A
T
H
=
export PYTHONPATH=
exportPYTHONPATH=PYTHONPATH:/home/vamei/mylib 你可以将正面的这行命令加入到~/.bashrc中。这样,我们就长期的改变了搜索路径。
脚本与命令行结合: 可以使用下面方法运行一个Python脚本,在脚本运行结束后,直接进入Python命令行。这 样做的好处是脚本的对象不会被清空,可以通过命令行直接调用。
$python -i script.py
安装非标准包: Python的标准库随着Python一起安装。当我们需要非标准包时,就要先安装。