模块

模块是更高级的封装
容器 ——>是对数据的封装,字符串、序列等
函数 ——>是对语句的封装
类 ———>是对方法和属性的封装
模块就是程序,即对代码的封装,每一个.py文件都是一个模块,对一套程序的封装
模块应该跟调用的程序在同一个文件夹下,模块名就是该.py文件的文件名,不需要带上后缀
命名空间,即该模块里面的函数的调用,需要 模块名.函数名
定义模块名,如:
将 下面函数保存在hello.py的文件中,该文件就是一个模块
在这里插入图片描述
在hello.py同一文件夹下创建一个调用 该模块的文件
调用的方法为:
import hello
hello.hi()
则会输出该函数后面的内容
如何导入模块
描述
以上即为定义模块和调用模块的过程,注意定义的模块文件和调用该模块的文件必须在一个文件夹下
导入模块的方法:
1.import 模块名
2.import 模块名 as a 将模块名命名为a
3. from 模块名 import 函数名

模块的主要作用:封装组织各块代码
实现代码的重复利用
注意,每一个模块在其完成之后要对其单独进行测试

在这里插入图片描述
如果在主程序中使用__name__变量,得到的是一个__main__
在这里插入图片描述
在模块中调用__name__得到的是这个模块的名字,即全称

如上面的温度转换模块,如果:
import Temperatureconvert as a
则 a.name 将得到模块名称Temperatureconvert
在这里插入图片描述
这个结果是直接在Temperatureconvert中调用,测试函数会执行因为此时__name__的结果为__main__
这个结果是在执行文件中,即调用了该模块之后,__name__的结果为模块名了
此处主要区分在模块中__name__为模块名,则不相等,测试函数不糊调用,但是在主程序中,name=main,测试函数会调用

搜索路径
模块的导入需要有一个搜索路径的过程,在导入 的过程中,python会自动搜索所需导入的模块的路径;
通过sys模块来实现搜索
路径以列表的形式存放
在这里插入图片描述
一般模块都集中放在site-packages文件夹中
以上列表即为搜索的路径,从其中找是否有该模块,如果没有则导入失败,该列表的第一个元素为所运行的idle所在位置,因此当模块跟调用程序在一个文件夹里时,模块能正常导入,因为路径已经存在与第一个元素的
如果运行的文件跟需要导入的文件不在一个文件夹,则不能直接导入,需要将绝对路径添加到path中:在这里插入图片描述
需要先 import sys #sys模块为搜索路径的模块


包的概念比模块大一级;用于存放模块
创建方法:
1.创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字
2.在上面创建的文件夹中创建一个__init__.py的文件,内容可以为空 #用来告诉python这个文件夹为一个包的文件夹
3.将相关的模块放入该文件夹中
导入包的模块:#即运行文件跟模块文件不在同一个文件夹下的时候,且模块个数比较多的时候统一用包处理
import 包名.模块名 as a

python标准库,即python自带的模块
如何独立的探索模块
模块名.file #输出结果为该模块的源代码所处的位置
模块名.__all__输出结果为过滤掉该模块里面的某些函数

python中的33个保留字
False as continue else from in not return yield None assert def except global is or try
True break del finally if lambda pass while and class elif for import nonlocal raise with

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zero _s

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

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

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

打赏作者

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

抵扣说明:

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

余额充值