05装饰器202106140高阶函数柯里化.md

嵌套函数

image-20250120153517555

base是local,函数里的函数inc调用不了local变量,所以要nonlocal一下。

高阶函数的定义:传参和返回值 有一个是函数就是高阶函数

这个不是高阶函数👇

image-20250120153944972

好痛苦,这玩意看的,大致能跟上,但是不开心,因为闭包、函数消亡、压栈、指针、堆栈、f._closure_这些东西我之前写那么多都不知道也用不到这玩意。不喜欢

理解:

def counter(base):
    def inc(step=1):
        nonlocal base
        base += step
        return base
    return inc

f = counter(10)
print(f()) # 11
print(f()) # 12 f.__closure__

理解:

def counter(base):
    def inc(step=1):
        nonlocal base
        base += step
        return base
    return inc

f1 = counter(5)
f2 = counter(5)
print(f1 == f2)  # False
print(f1 is f2)  # False

image-20250120174140025

image-20250120175806903

def add(x, y, z):
    retrun x + y + z

希望柯里化为
add(4)(5, 6)
add(4, 5)(6)
add(4)(5)(6)

def add(x):
    def fn(y,z):
        return x + y + z
    return fn
z = add(4)(5, 6)
print(z)

def add(x, y):
    def fn(z):
        return x + y + z
    return fn
z = add(4, 5)(6)
print(z)

def add(x):
    def cn(y):
        def fn(z):
            return x + y + z
        return fn
    return cn
z = add(4)(5)(6)
print(z)
Copyright 🌹 © oneyearice@126.com 2022 all right reserved,powered by Gitbook文档更新时间: 2025-01-20 18:21:59

results matching ""

    No results matching ""