python 匿名函数捕获变量值 (执行时的值)
生活随笔
收集整理的這篇文章主要介紹了
python 匿名函数捕获变量值 (执行时的值)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
先看下下面代碼的效果:
>>> x = 10 >>> a = lambda y: x + y >>>x= 20 >>> b = lambda y: x + y >>>現(xiàn)在我問(wèn)你,a(10)和 b(10)返回的結(jié)果是什么?如果你認(rèn)為結(jié)果是20和30,那么你就錯(cuò)了;
''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' >>> a(10) 30 >>> b(10) 30 >>>這其中的奧妙在于lambda表達(dá)式中的x是一個(gè)自由變量,在運(yùn)行時(shí)綁定值,而不是定義時(shí)就綁定,這跟函數(shù)的默認(rèn)值參數(shù)定義是不同的。因此,在調(diào)用這個(gè)lambda表達(dá)式的時(shí)候,x的值是執(zhí)行時(shí)的值。例如:
>>> x = 15 >>> a(10) 25 >>> x = 3 >>> a(10) 13 >>> 與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python 匿名函数捕获变量值 (执行时的值)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python基础教程:函数名本质
- 下一篇: Python中对象的引用与复制