python之模块
- Python中的模块
- 模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块(所有.py文件都是模块)
- import
- 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入。
形如:
import module1,mudule2...
当解释器遇到import语句,如果模块在当前的搜索路径就会被导入。
在调用math模块中的函数时,必须这样引用:
模块名.函数名
因为可能存在这样一种情况:在多个模块中含有相同名称的函数,此时如果只是通过函数名来调用,解释器无法知道到底要调用哪个函数。所以如果像上述这样引入模块的时候,调用函数必须加上模块名
import math
#这样会报错
print sqrt(2)
#这样才能正确输出结果
print math.sqrt(2)
- from…import
有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:
from modname import name1[, name2[, ... nameN]]
例如,要导入模块fib的fibonacci函数,使用如下语句:
from fib import fibonacci
- 不仅可以引入函数,还可以引入一些全局变量、类等
- 这种方式引入时,直接使用函数名调用,但是当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。
- 如果想一次性引入math中所有的东西,还可以通过 from math import * 来实现
-
模块中的__all__
在文件中设置__all__变量,可以限定通过 from xxx import * 时的内容 -
模块搜索路径
1> 当前目录
2> 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
3> 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
4> 模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。