一、模块和包的定义
1.一个 python 的文件就叫做模块(module),如 xxx.py。模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。
2.一个包含有__init__.py 文件的目录或文件夹就叫做包(package)。在 pycharm 中选择 python package 创建的目录就是一个包。
二、模块和包的作用
1.从文件级别组织程序,更方便管理
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
2.拿来主义,提升开发效率
同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率
3.包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来
随着功能越写越多,我们无法将所以功能都放到一个文件中,于是我们使用模块去组织功能,而随着模块越来越多,我们就需要用文件夹将模块文件组织起来,以此来提高程序的结构性和可维护性
三、模块和包的使用
➤项目结构如下图所示,要求:在 test.py 下调用模块文件中的变量、函数等。
module1.py 中代码
name = 'zhangsan'
def hello():
print('hello world')
➤module2.py 中代码
age = 18
class Speak():
def speak_chinese(self):
print('说汉语')
- 方式一:from module import var,func,cls
➤注意:导入模块名和当前的 py 文件必须在同一级目录
1.1 实现在 test.py 中调用 module2 模块中的内容
from module2 import age,Speak
print(age)
man = Speak()
man.speak_chinese()
- 方式二:from module import var as other_var
2.1 要求:test.pyt 中存在有与 module2 相同的变量名,要求同时使用 2 个变量名
from module2 import age as m2_age
age = 20
print(age)
print(m2_age)
- 方式三:from pkg.module import var,func,cls
3.1 实现在 test.py 中调用 module1 模块中的内容
from dir.module1 import name,hello
print(name)
hello()
- 方式四:from pkg import module
➤注意:调用模块中的变量、函数和类名时,要用模块名。变量或者模块名。函数或者模块名。类名方式来调用
4.1 实现在 test.py 中调用 module1 模块中的内容
from dir import module1
print(module1.name)
module1.hello()
- 方式五:**from module import ***
注意:这种方式是将模块中的所有变量、函数和类名导入,不推荐使用这种方式,容易导致名字重复的冲突。
5.1 实现在 test.py 中调用 module2 模块中的内容
from module2 import *
print(age)
man = Speak()
man.speak_chinese()
- 方式六:import var,func,cls
注意:python 的内置模块可以使用这种方式,也可以用 from module import var,func,cls 方式来进行代替
6.1 实现在 test.py 中调用内置模块 time 中的内容
import time
time.sleep(2)
from time import sleep
sleep(2)
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!