Python模块化编程
包
模块
模块是一个包含所有你定义的函数和变量的文件,其后缀为.py(就如我们编写的程序就是一个模块),可被其他程序引入。以使用该模块的函数等功能
模块分为三种:
1.内置模块:sys,os,subprocess,time等
2.自定义模块:人为自己编写的模块,莫与自带模块一个名
3.开源模块:可安装下载各种牛逼的模块
函数
1.函数的定义
格式:
def函数名(形参表):
函数体语句序列
[]#可选项,即可以没有返回值
函数调用:
函数名(实参表)
说明 :
函数必须先定义再使用
函数名与变量名的命名规则相同,只能包含字母,数字,下划线,且不能以数字打头
例:
defstart():print("Hello World!")if __name__ == ‘__main__‘:try:
start()exceptKeyboardInterrupt:print(‘被终止‘)
2. 局部变量和全局变量
局部变量:
只作用于函数或代码块内。作用范围有限。
全局变量:
可被不同的函数/类/文件共享。可被文件内部任何函数和外部文件访问。全局变量通常在文件的开始处定义。
3. 模块安装及使用
现在已经安装的模块,查询:
>>>help(‘modules‘)查看现在已安装的所有模块
3.1 模块的安装及镜像的替换
在internal终端,输入 pip install xx即可安装模块。可直接输入命令pip install -i 镜像源 包
或者直接更换为国内镜像源,以后不用再搜索。可以加快下载速度。
提供几个常见的国内镜像源网站:
3.2 pip命令
pip install <第三方库> #安装库
?
pip insatall-U<第三方库> #更新已安装的库
?
pip show<第三方库> #列出库的详细信息
pip uninstall<第三方库> #卸载
pip list #列出已经安装的第三方库
3.3 模块导入方式
1.import 模块 as 别名
import 直接导入模块
import math
a=math.exp(2)
2.from ... import ...
用于只导入指定模块的部分属性
from math import exp
a = exp(2)
4. 自定义包和模块
4.1 理解name属性
每个py脚本运行时都有一个name属性:
若py文件独立运行则,__name__== __main__
若py文件作为模块导入,则其name属性__name__== __xx__
例:
《Used_by.py》
if __name__ == ‘__main__‘:print(‘我是直接运行的‘)elif __name__ == ‘Used_by‘:print(‘Used_by模块被调用了‘)
《理解包和模块》
importUsed_byif __name__ == ‘__main__‘:
?print(‘------我是另一个模块,特意来调用别的模块-------‘)
运行结果:
(venv) λ python Used_by.py
我是直接运行的
?
?
(venv) λ python 理解包和模块.py
Used_by模块被调用了------我是另一个模块,特意来调用别的模块-------
4.2 如何使用包或者定义包和模块
包可以用来管理多个模块,可看作包含大量py模块的文件夹。在每个包的目录中都有一个__init__.py的文件,其可以是一个空文件,只为标识档期那文件夹是一个包。
__init__.py文件:
主要作用设置 __all__变量及初始化包所需要的代码