什么是模块
模块是一个事先定义好的函数和变量的文件,模块的后缀名是.py
模块是可以被别的程序引用,使用该函数的函数等功能
例如support.py
def print_func( par ):
print "Hello : ", par
return
如何使用模块
- import语句
通过使用import语句来引用模块
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
调用模块中的函数时,格式为 模块名.函数名
- from……import语句
搜索路径
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
1.当前目录
2.如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3.如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
print(sys.path) #输出模块路径
sys.path.append(‘D:\python\test’)
标准模块
- python本身带着一些标准的模块库
- sys 用于提供对Python解释器相关的操作
- os 用于提供系统级别的操作,关机,删文件,创建文件,调用系统命令
- time 时间相关的操作
- hashlib 用于加密相关的操作
- random 用于随机数
- re 用于正则表达式
- json 用于【字符串】和【Python基本数据类型】间进行转换
包
包的本质就是一个文件目录
目录只有一个包含叫做_init_.py的文件才会被认作是一个包
目录中存放了一个或多个.py模块
再导入一个包的时候,Python会根据sys.path中的目录来寻找这个包和包中含有的子目录
如果包定义文件_init_.py存在一个叫做_all_的列表变量,那么在使用from package import *的时候就把这个列表中的所有名字作为包内容导入
如_all_ = [“模块名1”,“模块名2”,“模块名3”]
dir()函数
dir() 函数一个排好序的字符串列表,内容是一个模块里定义过的名字。
返回的列表容纳了在一个模块里定义的所有模块,变量和函数。如下一个简单的实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入内置math模块
import math
content = dir(math)
print content;
以上实例输出结果:
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan',
'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp',
'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',
'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh']
在这里,特殊字符串变量__name__指向模块的名字,__file__指向该模块的导入文件名。
globals() 和 locals() 函数
根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字。
如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。
如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。
两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。
reload() 函数
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。
因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。语法如下:
reload(module_name)
在这里,module_name要直接放模块的名字,而不是一个字符串形式。比如想重载 hello 模块,如下:
reload(hello)
安装第三方模块
pip命令安装第三方模块
安装
pip install 模块名
卸载
pip uninstall 模块名
查看所有安装
pip list