欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python的lambda函数_Python-Lambda函数的范围及其参数?

发布时间:2025/4/16 python 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python的lambda函数_Python-Lambda函数的范围及其参数? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我需要一个与一系列gui事件几乎完全相同的回调函数。该函数的行为会有所不同,具体取决于调用该事件的事件。对我来说,这似乎是一个简单的案例,但是我无法弄清楚lambda函数的这种奇怪行为。

因此,我在下面有以下简化代码:

def callback(msg):

print msg

#creating a list of function handles with an iterator

funcList=[]

for m in ('do', 're', 'mi'):

funcList.append(lambda: callback(m))

for f in funcList:

f()

#create one at a time

funcList=[]

funcList.append(lambda: callback('do'))

funcList.append(lambda: callback('re'))

funcList.append(lambda: callback('mi'))

for f in funcList:

f()

此代码的输出是:

mi

mi

mi

do

re

mi

我期望:

do

re

mi

do

re

mi

为什么使用迭代器搞砸了?

我试过使用Deepcopy:

import copy

funcList=[]

for m in ('do', 're', 'mi'):

funcList.append(lambda: callback(copy.deepcopy(m)))

for f in funcList:

f()

但这有同样的问题。

总结

以上是生活随笔为你收集整理的python的lambda函数_Python-Lambda函数的范围及其参数?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。