gpt4 book ai didi

python - kivy python通过单击按钮将参数传递给函数

转载 作者:行者123 更新时间:2023-11-30 22:49:23 24 4
gpt4 key购买 nike

通过按下按钮调用函数时,我在将参数传递给函数时遇到问题。可以用 kivy 语言这样做:

Button: 
on_press: root.my_function('btn1')

但我想用 python 来做,因为我想创建更多带有循环的按钮。目前我在 python 中调用我的函数,如下所示:

Button(on_press=self.my_function)

但正如我所说,如果我尝试将参数传递给这样的函数,我会收到“AssertionError:None 不可调用”,如下所示:

Button(on_press=self.my_function('btn1'))

最佳答案

Button(on_press=self.my_function)

这是传递函数作为参数。

Button(on_press=self.my_function('btn1'))

这是调用函数并将返回值作为参数传递给on_press。由于返回的值为 None,因此您会收到错误。

您需要传递一个新函数来调用您的普通函数并自动传递参数。一般来说,使用functools.partial比较方便:

from functools import partial
Button(on_press=partial(self.my_function, 'btn1'))

您还可以使用 lambda 函数:

Button(on_press=lambda *args: self.my_function('btn1', *args))

关于python - kivy python通过单击按钮将参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com