Python函数 之 模块和包

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.模块的导⼊顺序

  1. 在导⼊模块的时候, 会先从代码所在的目录进⾏导⼊
  2. 如果没有找到,回去 Python 系统的⽬录查找导⼊
  3. 如果没有找到, 报错

注意点: 我们⾃⼰定义的代码文件名字 不要和你带入的系统的模块文件名⼀样。


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种测试场景


未完待续。。。

  • 41
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

埜玊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值