美文网首页
python 在匿名函数中绑定变量的值

python 在匿名函数中绑定变量的值

作者: 孙广宁 | 来源:发表于2022-05-24 20:20 被阅读0次
    7.7 如何在lambda定义的匿名函数中绑定特定的变量
    • 如下函数,我们判断应该会返回15,25,但实际是25,25
    >>> x =10
    >>> a = lambda y:x+y
    >>> x =20
    >>> b = lambda y:x+y
    >>> a(5)
    25
    >>> b(5)
    25
    >>>
    
    • 原因是lambda表达式中用的x是自由变量,在运行时才进行绑定,而不是在定义时绑定。如果想要得到15 25,我们要使用如下的顺序
    >>> x =10
    >>> a = lambda y:x+y
    >>> a(5)
    15
    >>> x =20
    >>> b = lambda y:x+y
    >>> b(5)
    25
    >>>
    
    • 如果想要匿名函数在定义时候就绑定变量,并保持值不变,那么需要将值作为默认参数实现,如下
    >>> x =10
    >>> a = lambda y,x=x:x+y
    >>> x =20
    >>> b = lambda y,x=x:x+y
    >>> a(5)
    15
    >>> b(5)
    25
    >>>
    

    相关文章

      网友评论

          本文标题:python 在匿名函数中绑定变量的值

          本文链接:https://www.haomeiwen.com/subject/rghsprtx.html