Python闭包与装饰

Python闭包与装饰

闭包与装饰的本质

一个函数的组成部分可以包含:

  1. 变量
  2. 函数

闭包和装饰的本质:

  • 组成部分中的函数引用了组成部分中的其他变量、函数、参数,return该组成部分函数。
闭包

定义:利用nonlocal声明函数组成部分中的变量,返回组成部分中的函数。

实际使用:定义一个函数,该函数每次执行,都会从上一步的计算结果继续执行。

def out_func():
    num = 10
    def in_func():
        nonlocal num
        num += 10
        print(num)
    return in_func

f = out_func()
f() # 20
f() # 30
        
装饰

定义:函数组成部分中的函数调用了参数,返回改函数。

实际使用:装饰的本质就是装饰,不参与任何被装饰函数的功能。一般可以用于日志,或者全局变量的判断。

def out_func(fn):
    def in_func():
        fn()
    return in_func

@out_func
def fn():
    print('被装饰')
    
fn()

相关推荐

  1. Python装饰

    2024-01-11 11:46:05       59 阅读
  2. python -装饰

    2024-01-11 11:46:05       33 阅读
  3. Python高级函数技术:装饰回调

    2024-01-11 11:46:05       27 阅读
  4. Python笔记11-装饰器和设计模式

    2024-01-11 11:46:05       55 阅读
  5. Python--装饰器高级应用

    2024-01-11 11:46:05       25 阅读
  6. 深入理解Python中的装饰

    2024-01-11 11:46:05       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 11:46:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 11:46:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 11:46:05       82 阅读
  4. Python语言-面向对象

    2024-01-11 11:46:05       91 阅读

热门阅读

  1. Python 函数

    2024-01-11 11:46:05       46 阅读
  2. vue for循环不建议使用index作为key的原因

    2024-01-11 11:46:05       58 阅读
  3. python使用单例模式加载config.ini配置文件

    2024-01-11 11:46:05       54 阅读
  4. C#Selenium WebDriver备忘录

    2024-01-11 11:46:05       49 阅读
  5. pytorch无法把共享内存写入文件

    2024-01-11 11:46:05       56 阅读
  6. 何为算法之算法趣闻

    2024-01-11 11:46:05       54 阅读
  7. 用Bert进行文本分类

    2024-01-11 11:46:05       57 阅读