什么叫模块
模块的英文为 Modules。
在 Python 中一个扩大名为 .py
的文件就是一个模块。
模块与函数的关系:
一个模块能够蕴含多个函数、类、语句。
应用模块的长处:
- 不便其余程序和脚本的导入并应用
- 防止函数名和变量名抵触
- 进步代码的可维护性
- 进步代码的可重用性
自定义模块
- 创立一个.py 的文件,名称尽量不要与 Python 自带的规范模块名称雷同。
-
导入模块
# 导入整个指定模块 import 模块名称 [as 别名] # 导入指定模块的指定函数 / 变量 / 类 form 模块名称 import 函数 / 变量 / 类
代码示例:
import math as mt print(mt) # <module 'math' (built-in)> print(mt.pi) # 3.141592653589793 print(mt.pow(2, 3)) # 8.0 print(mt.ceil(9.001)) # 10 print(mt.floor(9.001)) # 9
导入指定函数 / 变量 / 类
from math import pi print(pi) # 3.141592653589793
以主程序模式运行
每个模块的定义中都包含一个记录模块名称的变量 __name__
,程序能够查看该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其余程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__
变量的值为__main__
。
-
新建
a.py
def add(a, b): return a + b print(add(10, 20))
-
新建
b.py
import a print(a.add(100, 200))
-
运行
b.py
输入后果为:
30
300 -
批改
a.py
def add(a, b): return a + b if __name__ == '__main__': # 当 a.py 以主程序运行时才执行 print(add(10, 20))
-
运行
b.py
(此时b.py
为主程序)输入后果为:
300 -
运行
a.py
(此时a.py
为主程序)输入后果为:
30
Python 中的包
- 包是一个分档次的目录构造,将一组性能相近的模块组织在一个目录下
- 作用:代码标准、防止模块名称抵触
-
包与目录的区别
- 蕴含
__init__.py
文件的目录称为包; - 目录里通常不包含
__init__.py
文件; - 编辑器中的图标也有差别。
- 蕴含
-
包的导入
import 包名. 模块名[. 函数 / 变量 / 类] [as 别名]
Python 中罕用的内置模块
模块名 | 形容 |
---|---|
sys |
与 Python 解释器及其环境操作相干的规范库 |
time |
提供与工夫相干的各种函数的规范库 |
os |
提供了拜访操作系统拜访性能的规范库 |
calendar |
提供与日期相干的各种函数的规范库 |
urllib |
用于读取来自网上(服务器)的数据规范库 |
json |
用于应用 Json 序列化和反序列化对象 |
re |
用于在字符串中执行正则表达式匹配和替换 |
math |
提供规范算数运算函数的规范库 |
decimal |
用于进行准确管制运算精度、有效位数和四舍五入操作的十进制运算 |
logging |
提供了灵便的记录事件、谬误、正告和调试信息等日志信息的性能 |
-
sys
代码示例import sys print(sys.getsizeof(24)) # 28 print(sys.getsizeof(True)) # 28 print(sys.getsizeof(False)) # 24
-
time
代码示例import time print(time.time()) # 1660629231.9002664 ; 秒数 print(time.localtime(time.time())) # time.struct_time(tm_year=2022, tm_mon=8, tm_mday=16, tm_hour=13, tm_min=53, tm_sec=51, tm_wday=1, tm_yday=228, tm_isdst=0)
-
urllib
代码示例import urllib.request print(urllib.request.urlopen('http://www.baidu.com').read())
第三方模块的装置和应用
第三方模块的装置
pip install 模块名
第三方模块的应用
import 模块名
导入 schedule 模块代码示例
cmd
中执行pip install schedule
- 创立
demo.py
-
写入以下代码
import time import schedule def job(): print('haha···') schedule.every(3).seconds.do(job) while True: schedule.run_pending() time.sleep(1)
-
运行代码
输入后果:
haha···
haha···
haha···