1

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 -------")
4

1 回答 1

1

替换button.when_pressed = process_button16()button.when_pressed = self.process_button16(),因为您已将其定义process_button16()为类的私有函数ButtonSense

button.when_pressed = process_button16()尝试分配一个名为process_button16()to的全局函数,button.when_pressed并且由于您尚未定义任何此类全局函数,因此会引发错误NameError: name 'process_button16' is not defined

于 2018-02-04T17:00:01.880 回答