学习笔记,参考文档《Python CookBook》
# -*- coding: utf-8 -*- # @CreateTime : 2022/5/11 10:04 # @ModifyTime : 2022/5/11 10:04 # @Author : xuming # @File : 7.7在匿名函数中绑定变量的值.py # @Software: PyCharm # @Description: x = 10 a = lambda y: x + y x = 20 b = lambda y: x + y # 求a(10), b(10)的结果 print(a(10), b(10)) """ 结果:30 30 原因分析:由于lambda 表达式中的x是一个自由变量,在运行时才进行绑定而不是定义时进行绑定的。因此,lambda表达式中x的值应该是执行的时候确定的,执行 时x的值为20,故a(10), b(10)的值都是30 若希望匿名函数在定义时绑定变量且保持值不变,可将该值作为默认关键字参数实现。 """ x = 10 a = lambda y, x=x: x + y x = 20 b = lambda y, x=x: x + y # 求a(10), b(10)的结果 print(a(10), b(10)) """ 结果:20 30 """