Python 第十五天 (for循环、生成器、装饰器、程序解耦)
1、 for循环机制
for循环是将循环对象进行全部调用,并可以换识别stopiteration,在进行迭代后自动停止
2、生成器
生成器的两种形式
1、生成器函数:包含yield语句的函数就是生成器
2、生成器表达式:进行列表推导,可以产生生成器结果
使用列表包含三元表达式的方式实现生成器
优点:
节约内存:一次调用1个数据
3、装饰器
装饰器本质是函数,为其他函数添加附加功能
原则:
1、不修改被装饰函数的代码
2、不修改被装饰函数的调用方式
装饰器本质:
高阶函数 + 函数嵌套 + 闭包
高级函数:
import time
def foo ():
time.sleep(2)
print('计算时间')
def timmer(func):
start_time=time.time()
func ()
Stop_time= time.time()
print('函数运行时间%s'%(Stop_time-start_time))
return func
foo = timmer(foo)
foo()
闭包:
def outer(num): # 外层局部变量 x = num # 内层函数(闭包函数) def inner(): # 内层使用外层变量x print(f"外层传入数字:{x}") return x * 2 # 返回内层函数对象,不调用 return inner # 调用外层,接收内层函数 f1 = outer(10) f2 = outer(20) # 执行内层函数 print(f1()) # 20 print(f2()) # 40 # 可以查看闭包保存的变量 print(f1.__closure__) print(f1.__code__.co_freevars)
4、程序解耦
程序编写过程中,因为解决的问题连续,有可能程序整个存在高度耦合情况(代码之间高度绑定,修改1处可能引发连锁反应)
这时候需要将代码拆开,相互隔离,尽量减少互相之间的依赖。

浙公网安备 33010602011771号