Python第十一课 模块
Posted 笔触狂放
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python第十一课 模块相关的知识,希望对你有一定的参考价值。
11.1 模块的导入
什么是模块,在python中如果需要在一个python文件中使用其他的python文件中的方法和变量时,需要将其他的python文件导入进来,那么我们把这个被导入的python文件称为模块。其实类似于Java中的导包。
创建模块Mode1.py
# 摄氏度转华氏度
def c2f(cel):
fah=cel*1.8+32
return fah
#华氏度转摄氏度
def f2c(fah):
cel=(fah-32)/1.8
return cel
导入模块进行使用
Test10.py
# 模块
# 导入Mode1
import Mode1
c2f=32
f2c=99
print("0摄氏度=%.2f华氏度".format(c2f) % Mode1.c2f(c2f))
print("0华氏度=%.2f摄氏度".format(f2c) % Mode1.f2c(f2c))
#运行结果
#32摄氏度=89.60华氏度
#99华氏度=37.22摄氏度
导入模块的方式还有其他的写法:
# 模块
# 从模块Mode1中导入c2f方法和f2c方法
from Mode1 import c2f,f2c
c2f=32
f2c=99
print("0摄氏度=%.2f华氏度".format(c2f) % c2f(c2f))
print("0华氏度=%.2f摄氏度".format(f2c) % f2c(f2c))
也可以给模块定义别名,方便开发者理解
# 模块
# 从模块Mode1定义别名
import Mode1 as m
c2f=32
f2c=99
print("0摄氏度=%.2f华氏度".format(c2f) % m.c2f(c2f))
print("0华氏度=%.2f摄氏度".format(f2c) % m.f2c(f2c))
11.2 __name__='__main__'
当模块文件自己也需要使用自己方法,当测试文件调用模块的时候,会把模块中测试运行的代码也会执行。
Mode1.py
# 摄氏度转华氏度
def c2f(cel):
fah=cel*1.8+32
return fah
#华氏度转摄氏度
def f2c(fah):
cel=(fah-32)/1.8
return cel
def test():
print(c2f(32))
print(f2c(99))
test()
其运行结果:
89.6
37.22222222222222
通过测试类调用Mode1.py时,会把Mode1.py本身的测试方法也会输出
Test10.py
# 模块
# 从模块Mode1定义别名
import Mode1 as m
c2f=32
f2c=99
print("0摄氏度=%.2f华氏度".format(c2f) % m.c2f(c2f))
print("0华氏度=%.2f摄氏度".format(f2c) % m.f2c(f2c))
运行结果:
89.6
37.22222222222222
32摄氏度=89.60华氏度
99华氏度=37.22摄氏度
通过运行,可看到,我们其实只想输出我们测试类中的结果,但是把Mode1本身的测试方法也输出了,这时候我们如果不想输出模块自己的结果,需要加上如下代码
在Mode1.py中运行test()方法时,加上判断,判断当前是否直接运行本身文件
# 当运行的是本类时,才运行该方法
if __name__ == "__main__":
test()
则外部调用该模块的时候,不再执行test()模块自身的调用。
11.3 搜索路径
如果模块文件和测试运行文件不在同一路径下,则会导入失败,需要先找到模块所在路径,然后进行导入模块。
11.4 包
将不同功能的py文件放置在不同的包中,其有点是在做项目时,文件越来越多,根据不同的包找我们需要的文件可以加快我们的开发效率,这就好比,我们新买了一个书架,当我们就两三本书的时候,你可以随便放在书架上,你需要的时候也能快速的找到,当书架上的书越来越多,堆满了,如果不对这些书做分类摆放,想立马找到你想要的书,可能不是那么简单了。在我们程序中把分类的过程称为包,因此我们需要习惯在建立项目后,就要创建包,将不同的py文件进行分包处理,归类才能增加效率。创建包的时候会自动创建__init__.py作为初始化该包的数据,该文件不需要我们做任何处理,但一定需要这个文件,不能删除。
以上是关于Python第十一课 模块的主要内容,如果未能解决你的问题,请参考以下文章