如何在kivy绑定python中使用lambda?

问题描述 投票:0回答:1

我正在学习在文档示例中使用下拉列表对象

from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.base import runTouchApp

dropdown = DropDown()
for index in range(10):
    btn = Button(text='Value %d' % index, size_hint_y=None, height=44)

    btn.bind(on_release=lambda btn: dropdown.select(btn.text))

    dropdown.add_widget(btn)
mainbutton = Button(text='Hello', size_hint=(None, None))
mainbutton.bind(on_release=dropdown.open)

dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))
runTouchApp(mainbutton)

我知道这是一个lambda函数,它的参数名应该像普通函数一样是任意的,但在第一种情况下,参数“ btn”指的是在其中声明它的Button实例(按顺序从那里提取文本)。

在我看来,lambda的第二次出现似乎更为罕见,因为它有两个参数“ instance”和“ X”,但是对于setattr仅使用了“ X”,我设法打印出该参数,它是一个

python lambda drop-down-menu kivy dropdown
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.