目录
- 模块和包
- 1. 什么叫模块
- 2. 自定义模块
- 3. 以主程序的形式执行
- 4. Python中的包
- 5. 第三方模块的安装与使用
模块和包
1. 什么叫模块
- 模块英文为Modules
- 函数与模块的关系:一个模块中可以包含N多个函数
- 在Python中一个扩展名为.py的文件就是一个模块
- 使用模块的好处:
(1)方便其他程序和脚本的导入并使用
(2)避免函数名和变量名冲突
(3)提高代码的可维护性
(4)提高代码的可重用性
2. 自定义模块
创建模块
新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同。
导入模块
import 模块名称 [as 别名] (导入模块中的所有)
导入其他人的模块:
import math # 关于数学运算的一个模块
print(id(math))
print(type(math))
print(math.pi)
print('--------------------------')
print(dir(math))
print(math.pow(2,3),type(math.pow(2,3)))
print(math.ceil(9.001))
print(math.floor(9.999))
from 模块名称 import 函数/变量/类 (导入模块中的部分)
from math import pi
print(pi)
导入自己的模块:
calc模块:
def add(a,b):
return a+b
def div(a,b):
return a/b
# 导入自己的模块
import calc
print(calc.add(2,3))
from calc import add
print(add(10,20))
3. 以主程序的形式执行
在每个模块的定义中都包括一个记录模块名称的变量_name_,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的_name_变量的值为_main_
if name ==‘main’:
pass
例如:
calc2.py
def add(a,b):
return a+b
if __name__ == '__main__':
print(add(10,20)) # 只有当点击运行calc2时才会执行运算
调用calc2模块:此时不会输出30
# 以主程序的形式执行
import calc2
print(calc2.add(100,200))
4. Python中的包
包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下。
作用:
- 代码规范
- 避免模块名称冲突
模块与包的区别:
- 包含__init__.py文件的目录称为包
- 目录里通常不包含__init__.py文件
包的导入:
import 包名.模块名
'''包'''
'''导入Package1包'''
import Package1.module_A as ma # ma是Package1.module_A这个模块的别名
# print(Package1.module_A.a)
print(ma.a)
# 在导入带有包的模块时,注意事项:
import Package1
import calc
# 使用import进行导入时,只能跟包名或者模块名
from Package1 import module_A
from Package1.module_A import a
# 使用from...import可以导入包、模块、函数、变量等
Python中常用的内置模块:
模块名 | 描述 |
sys | 与Python解释器及其环境操作相关的标准库 |
time | 提供与时间相关的各种函数的标准库 |
os | 提供了访问操作系统服务功能的标准库 |
calendar | 提供与日期相关的各种操作的标准库 |
urllib | 用于读取来自网上(服务器)的数据标准库 |
json | 用于使用JSON序列化和反序列化对象 |
re | 用于在字符串中执行正则表达式匹配和替换 |
math | 提供标准算术运算函数的标准库 |
decimal | 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算 |
logging | 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能 |
import sys
print(sys.getsizeof(24))
print(sys.getsizeof(True))
import time
print(time.time())
print(time.localtime())
import urllib.request
print(urllib.request.urlopen('http://www.baidu.com').read())
from decimal import Decimal
print(Decimal(3)+Decimal(3))
5. 第三方模块的安装与使用
第三方模块的安装:
pip install 模块名
第三方模块的使用:
import 模块名
import schedule
def job():
print('哈哈')
schedule.every(3).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)