一、模块
1.模块化指的是将一个完整的程序分解成一个个的小模块
2.通过将模块组合,来搭建出一个完整的程序
3.特点:方便开发和维护、模块可复用
4.模块的创建
一个py文件相当于一个模块,在一个模块中引入外部模块
语法:
import 模块名(py文件名)
import 模块名 as 模块别名
运行后结果如下图
5.通过__name__,可以获取模块名,_name__默认等于字符串’main’。__name__属性值为__main__的模块是主模块。一个程序中只有一个主模块
6.模块的使用
6.1.访问模块中的变量 语法是 模块名.变量名
6.2.访问模块中的函数 语法是 模块名.函数名
6.3.访问模块中的对象 语法是 模块名.对象名
6.4.引入部分模块中的部分内容
语法:
from 模块名 import 变量(函数、类等)
6.5.当主模块与被引用模块有相同的方法或时,可以使用别名方式,这样为会丢失部分功能
语法: from 模块名 import 变量 as 别名
6.6.关于if name=='main’一般在子模块测试时应用,避免被主程序误用
6.7.模块或部分引入需看应用场景,具体用法如下
#1.import xxx
#2.import xxx as yyy(文件名过长可使用此方法)
#3.from xxx import aa,bb,cc
#4.from xxx import *
#5.from xxx import yy as cc
二、推导式、生成器
2.1.列表推导式
使用[]生成列表
#语法:[变量 for 变量 in 旧列表]或[变量 for 变量 in 旧列表 if 判断条件]
2.2.字典推导式
2.3.集合推导式
2.4.生成器(generator)
1.特点:可以优化内存、提高性能,避免资源过度消耗
2.生成器的生成有两种方式:一是通过推导式生成 一是通过yield函数 生成
3.生成器是一个可迭代对象,也是一个可迭代器
4.查看生成器的值使用生成器名__next___或netx(生成器名)方法
#使用推导式()生成一个生成器
s=(x*2 for x in range(10))
print(s,type(s))
print(next(s))
print(s.__next__())
print('-------------------------------------------')
#使用yield函数生成一个生成器
def fn_sum(a,b):
yield a+b
c=fn_sum(5,6)
print(c,type(c))
2.5.迭代器(Iterator)
1.迭代理解,可以遍历的东西,任何可以遍历的东西都是可迭代的
2.迭代(Iterable)对象,像如列表、元组、字曲、集合等,判断一个对象是否为可迭代对象,可以使用isinstance
3.可迭代器中每使用完一项,它就会自动在迭代器中消失
4.迭代器特征:可以被next()方法调用
5.迭代对象转换成迭代器可以使用iter()函数
alst=[1,2,3,4,5,6]
print(isinstance(alst,Iterable))
n=iter(alst)#转换成迭代器
print(n)
print(next(n))
2.6.生成器、迭代器和迭代对象关系如下图