一、模块的简介
- 模块化指将⼀个完整的程序分解成⼀个个的⼩模块,通过将模块组合,来搭建出⼀个完整的程序。
- 模块化的优点:
1、方便开发与维护;
2、提高程序的复用性!
二、模块的创建
- 在Python当中⼀个py⽂件就是⼀个模块,在⼀个模块中引⼊外部模块:
1、import 模块名(模块名就是py⽂件) ,注意py文件要和执行的模块文件要在同一个文件夹下!
eg.
由上图可知,直接打印模块名可得到其路径!
- 可以引⼊同⼀个模块多次,但是模块的实例只会创建执行⼀次!
2、import+模块名+as+模块别名
eg.
- 在每⼀个模块内部都有⼀个__name__,通过它我们可以获取模块的名字!
如果模块(py⽂件)直接运⾏时,那么__name__默认等于字符串'__main__',表示当前文件为主文件!即当__name__=='__main__'时表示此时运行的模块为主文件,或者叫主文件入口!
eg.
__name__属性值为__main__的模块是主模块。⼀个程序中只有⼀个主模块!
三、模块的使用
3.1 访问模块中的变量
语法:模块名.变量名
eg.
3.2 访问模块中的函数
语法:模块名.函数名
eg.
3.3 访问模块中的对象
语法:模块名.对象名
3.4 访问模块中的部分内容
1、语法:from+模块名+import+变量1,变量2,变量3...
eg.
2、语法:from+模块名+import+*
eg.
由上图可知,主模块的fx函数会被覆盖!由此引入下一种方法:
3、语法:from+模块名+import+变量+as+别名
eg.
PS:
1、数据不可能完全私有,所以看到绿色的波浪线时,要去引用的模块种看下程序!
_c是被封装的变量!
2、子模块中的测试代码不希望在主模块中运行,则可以在子模块中使用到:
if __name__=='__main__': ### 主文件入口
防止主模块执行这段子模块中的测试代码!
eg.
四、迭代器&生成器
4.1 迭代器
-
访问元素的一种方式(即需要遍历),是可以记住遍历位置的对象(元素)。迭代器也是从序列中的第一个元素访问,直到所有的元素被访问完结束!
方法:iter() next()
eg.
停止迭代!
标准:
4.2 生成器
- 在Python中使用yield这个关键字我们称之为生成器或者生成器函数!
-
生成器和普通函数的区别:生成器返回的是一个迭代器的函数,只用于迭代作用!
语法:
yield+变量
next(变量)
即在当前位置继续访问!!!同时注意打印时的先后顺序,与return有区别!!!
eg.