我想知道是否可以创建一个“def”列表,连接 20 个按钮的列表,并为每个按钮设置不同的回调。
Thanks
def
在Python中只是一个将名称绑定到函数/闭包的常规语句。例如你可以写
flist = []
for i in range(30):
def func(x, i=i):
print(x * i)
flist.append(func)
在那之后flist[7](6)
将返回 42。
棘手的部分只是i=i
在上述声明中。这是必需的,因为闭包捕获了变量,不是当前的变量值。没有那个i=i
所有函数都将使用相同的变量i
用于循环。
Python 还对匿名函数有一些支持,因此在上面的简单情况下,代码可以缩短为
flist = []
for i in range(30):
flist.append(lambda x, i=i: print(x * i))
but lambda
s 非常有限(只有一个表达式,没有语句)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)