Python 启动回调时提供的参数数无效
刚买了一套覆盆子圆周率测试工具,开始修补它。 我有以下中断:Python 启动回调时提供的参数数无效,python,raspberry-pi,gpio,raspberry-pi2,Python,Raspberry Pi,Gpio,Raspberry Pi2,刚买了一套覆盆子圆周率测试工具,开始修补它。 我有以下中断: GPIO.add_event_detect(23, GPIO.FALLING, callback=partial(sensor1, LastPour1, PourCounter1) 该方法的定义如下: def sensor1(LastPour1, Pourcounter1): 然而,当我参加活动时,我得到: TypeError: sensor1() takex exactly 2 arguments (3 given) 请开导
GPIO.add_event_detect(23, GPIO.FALLING, callback=partial(sensor1, LastPour1, PourCounter1)
该方法的定义如下:
def sensor1(LastPour1, Pourcounter1):
然而,当我参加活动时,我得到:
TypeError: sensor1() takex exactly 2 arguments (3 given)
请开导我!
下面是大部分相关代码
# GPIO 23 set up as input. It is pulled up to stop false signals
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
VOL_PER_TICK = 5
PourCounter1 = 0
PourCounter2 = 0
LastPour1 = time.time()
LastPour2 = time.time()
Vol1 = 0
Vol2 = 0
Beer1 = ""
Beer2 = ""
workfile = 'beer_data.txt'
def sensor1(LastPour1, PourCounter1):
"sensor 1 tripped"
if time.time() - LastPour1 < 5:
PourCounter1 = PourCounter1 + 1
else:
print "NEW POUR\n"
PourCounter1 = 1
LastPour1 = time.time()
GPIO.output(19, True)
time.sleep(0.05)
GPIO.output(19, False)
GPIO.add_event_detect(23, GPIO.FALLING, callback=partial(sensor1, LastPour1, PourCounter1))
如果sensor1是一个实例方法,则会调用它,将绑定到的对象作为其第一个参数传递给它,即self。要么在它现在所在的类之外将其声明为普通函数,要么用@staticmethod修饰它。看看是否有助于您进行建议的更改,现在我得到一个typeerror:@staticmethod不可调用