NameError: name 'process_button16' is not defined

NameError: name 'process_button16' is not defined

当 运行 以下代码时,我收到 NameError: name 'process_button16' is not defined 错误。

它也可以在不按下按钮的情况下打开 LED……不应该那样做……

我正在尝试使用 appdaemon for Home Assistant 中的应用程序实现按钮按下操作。我是一名前开发人员,但不是 python 所以我在这里敲击键盘....任何帮助将不胜感激。

import appdaemon.appapi as appapi
from gpiozero import Button
import RPi.GPIO as GPIO

global button    
BUTTON_PIN = 16
button = None



class ButtonSense(appapi.AppDaemon):
    GPIO.output(17,GPIO.LOW)
    GPIO.output(27,GPIO.LOW)

    def initialize(self):
        self.log("-------  Hello -------")
        button = Button(BUTTON_PIN)
        button.when_pressed = process_button16()

    def process_button16():
            GPIO.output(17,GPIO.HIGH)
            GPIO.output(27,GPIO.HIGH)
            self.log("-------  Pressed -------")

button.when_pressed = process_button16() 替换为 button.when_pressed = self.process_button16(),因为您已将 process_button16() 定义为 class ButtonSense.

的私有函数

button.when_pressed = process_button16() 尝试将名为 process_button16() 的全局函数分配给 button.when_pressed,并且由于您尚未定义任何此类 global 函数,它抛出错误 NameError: name 'process_button16' is not defined