Я учусь использовать выпадающий объект с примером документации.
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)
Я знаю, что это лямбда-функция, имя ее аргументов должно быть произвольным, как в обычной функции, но в первом случае аргумент «btn» относится к экземпляру Button, в котором он объявлен (для извлечения текста оттуда).
Второе вхождение лямбды кажется мне еще более редким, поскольку оно имеет два аргумента "instance" и "X", но для setattr используется только "X", мне удалось вывести этот аргумент, и это