gpt4 book ai didi

python - 在 Python 中,如何在线程回调中传递参数?

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:04 25 4
gpt4 key购买 nike

基本上,我会观察逻辑电平以了解某种变化,然后计算其持续时间。因为我有很多不同的台词要看,所以我开始为每台台词创建一个函数。所以我想,为什么我不创建一个函数,根据触发的行使用不同的参数。

def myCallBack(pin, bool, Ftimer, Etimer):
## some more code here for checking bools and using timers

GPIO.add_event_detect(pin1, GPIO.both, callback=myCallBack(pin1, bool1, Ftimer1, Etimer1), bouncetime=200)
GPIO.add_event_detect(pin2, GPIO.both, callback=myCallBack(pin2, bool2, Ftimer2, Etimer2), bouncetime=200)
...

目前,我收到错误“TypeError:Parameter must be callable”这种方法甚至可能吗?我这样做是对的吗?任何帮助,将不胜感激。谢谢。

最佳答案

from functools import partial
callback=partial(myCallBack, pin1, bool1, Ftimer1, Etimer1)

这将生成一个不带参数的函数,它调用 myCallBackpin1bool1Ftimer1Etimer1 调用时。或者,尝试:

callback=lambda *a: myCallBack(pin1, bool1, Ftimer1, Etimer1)

另见 Python, how to pass an argument to a function pointer parameter? .

关于python - 在 Python 中,如何在线程回调中传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29418019/

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