1.模块
1, 在Python 中, 每个以 `.py` 结尾的 Python 代码⽂件 都可以称为是⼀个模块。
2, 在模块中 别⼈书写好的功能(变量, 函数, 类),我们可以拿来直接使⽤。
3, 我们自己写的代码文件, 想要作为模块让别⼈使⽤, 你的代码⽂件名(模块名) 满足标识符的规则。
4, 想要使用 别人模块中写好的功能,需要先导入别人写好的功能。
5, as 关键字 , 可以给模块或者功能起别名。
2.模块导入的方法
模块就好比是工具包, 要想使用这个工具包中的工具, 就需要先 导入模块
(1)方式一:多用于导入系统中的常用的模块和功能
- 导入模块:
- import 模块名 # 模块名 就是代码文件名,不要 .py
- 使用其中的功能:
- 模块名.功能名 # 功能可以是变量,函数 和类
import random
num = random.randint(1, 10)
print(num)
(2)方式二:多用于导入自己书写的,或者是第三方的模块
- 导入模块:
- from 模块名 import 功能名 # 导入指定的功能
- 使用其中的功能:
- 功能名()
- 小tips:导入模块时可以使⽤快捷键 Alt 回⻋
from random import randint
num = randint(1, 10)
print(num)
需求:
1. 定义⼀个模块 tools.py , 在模块中定义⼀个函数 sum_2_num(), 可以对两个数字求和。
2. 新定义⼀个代码⽂件, 调⽤ tools.py ⽂件中的sum_2_num() 函数, 对 10 和 20 求和。
tools.py文件:
def sum_num(a, b):
return a + b
新文件:xx.py
# import tools
#
# num = tools.sum_num(10, 20)
# print(num)
from tools import sum_num as sn
# num = sum_num(10, 20)
num = sn(10, 20)
print(num)
3.__name__ 变量
- 导⼊模块的时候, 会执行模块中的代码
- 作用:如果在导⼊模块的时候, 模块中的部分代码不想被执⾏, 可以使⽤ __name__ 来解决
- __name__ 变量:是 Python 解释器内置的变量(变量的值是⾃动维护的), 每个代码⽂件中,都有这个变量
- 在模块中 直接右键运⾏代码⽂件, __name__ 变量的值是 '__main__'
- 如果是被导⼊运行代码文件, __name__ 变量的值 是 模块名(文件名)
总的来说,所以: if __name__ == '__main__':# 在这个 if 的缩进中书写的代码 , 导⼊的时候不会被执⾏![]()
解析:
(1)在xx.py中导入模块tools的时候,会执行tools模块中的代码,如下图:
(2)使用_name_变量的原理:在模块中 __name__ 的值是'__main__',在被导入的文件中,他的值是模块名(文件名)
(3)使用判断语句,控制导入的模块里的代码执行与否:
4.模块的导⼊顺序
- 在导⼊模块的时候, 会先从代码所在的目录进⾏导⼊
- 如果没有找到,回去 Python 系统的⽬录查找导⼊
- 如果没有找到, 报错
注意点: 我们⾃⼰定义的代码文件名字 不要和你带入的系统的模块文件名⼀样。
5.包(package)
- 包: 将多个模块放在⼀个⽬录中集中管理, 并在这个⽬录中创建⼀个 __init__.py ⽂件(可以什么都不写),就是⼀个包。
- 包名 的命名方式:和 变量名 一致
- 作用:python文件较多时,方便分目录管理维护
(1)包的创建
(2)包的导入
方式一:
导入包
import 包名.模块名
使用
包名.模块名.工具名
方式二:
导入包
from 包名 import 模块名
使用
模块名.工具名
方式三,快捷键导包:
导入包
from 包名.模块名 import 工具名
直接使用工具名
工具名
需求:
1. 新建一个 ys_01 的 包
2. 在目录下,新建两个文件 send_message 和 receive_message
3. 在 send_message 文件中定义一个 send 函数
4. 在 receive_message 文件中定义一个 receive 函数
5. 在外部定义一个 test_message 文件,编写测试代码调用发消息和收消息的函数
(3)案例
模拟开发登录功能并测试
需求:
1. 模拟开发人员实现登录功能,定义一个函数能够接收用户输入的用户名、密码、验证码,根据不同
的测试数据返回不同的验证结果
2. 已知正确的登录信息(用户名:admin、密码:123456、验证码:8888)
3. 要求1:创建login_service.py模块开发登录功能代码,并存放到service包中
4. 要求2:创建test_login.py模块开发测试代码,并存放到script包中
5. 要求3:至少测试3种测试场景
未完待续。。。