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处可能引发连锁反应)

这时候需要将代码拆开,相互隔离,尽量减少互相之间的依赖。

  

 

    

posted @ 2026-07-26 02:39  贫道财迷  阅读(5)  评论(0)    收藏  举报