Python学习11--函数(二)

    技术2025-07-28  12

    Python学习11--函数(二)

    Python学习11函数内部函数闭包装饰器匿名函数递归函数 学习视频:b站 【千锋教育】Python 900集 书籍: Head First Python(中文版) 学习总结笔记,侵删

    Python学习11

    函数

    内部函数

    在函数内再声明一个函数。 内部函数修改外部函数的局部不可变变量,需要关键字nonlocal。对于可变变量可直接访问修改。

    def x1() : a = 100 def x2() : nonlocal a a+=100 x2() print(a) x1()

    闭包

    依据函数提出的概念,在函数内定义一个内部函数,然后将内部函数进行返回,使之可以在外部进行调用。

    def x1() : a = 100 def x2() : nonlocal a a+=100 print(a) return x2 x = x1() x()

    装饰器

    在闭包的基础上,函数作为参数。

    def x1(func) : def x2() : func() print(1) return x2 @x1 def f() : print("xxxxxx") f()

    f()为被装饰函数,x1()为装饰器 @x1会将被装饰函数f()作为参数传给装饰器x1(),然后执行x1() 又因为x1()返回了函数x2(),所以此时f = x2 执行语句f()时执行了内部函数x2()

    当存在多层装饰器时,离得近的先进行装饰

    def x1(func) : def x3() : func() print(1) return x3 def x2(func) : def x3() : func() print(2) return x3 @x2 @x1 def f() : print("xxxxxx") f()

    装饰器也可带参数,需多封装一层(三层),最外层的函数负责接收装饰器参数

    匿名函数

    s = lambda a,b : a+b r = s(1,2) print(r)

    递归函数

    Processed: 0.010, SQL: 10