Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Python中的按钮切换状态以触发函数-但会循环打开和关闭_Python_Raspberry Pi - Fatal编程技术网

通过Python中的按钮切换状态以触发函数-但会循环打开和关闭

通过Python中的按钮切换状态以触发函数-但会循环打开和关闭,python,raspberry-pi,Python,Raspberry Pi,我试着用一个按钮,在这个例子中是一个Amazon Dash按钮,来触发两个功能——也就是说,一旦它激活了一个功能,按下一次就会激活另一个功能 我曾尝试将状态设置为按钮,然后将状态从False更改为True,但while循环似乎只是重复触发操作以打开和关闭 我怀疑这是因为循环即将开始,看到状态默认设置为False,然后从那里开始。然而,当我试图找出我需要把状态放在哪里才能工作时,我被卡住了 以下是我迄今为止代码的相关部分: def button_pressed_dash(): try: s

我试着用一个按钮,在这个例子中是一个Amazon Dash按钮,来触发两个功能——也就是说,一旦它激活了一个功能,按下一次就会激活另一个功能

我曾尝试将状态设置为按钮,然后将状态从False更改为True,但while循环似乎只是重复触发操作以打开和关闭

我怀疑这是因为循环即将开始,看到状态默认设置为False,然后从那里开始。然而,当我试图找出我需要把状态放在哪里才能工作时,我被卡住了

以下是我迄今为止代码的相关部分:

def button_pressed_dash():
try:
    socket_on = False
    while True:
        if not socket_on:
            both_on()
            socket_on = True
        elif socket_on:
            both_off()
            socket_on = False
        time.sleep(5)
except (KeyboardInterrupt, SystemExit):
    os._exit(1)

请说明
都开()
都关()
有什么作用。我不想包括在内,因为这会使示例无限大。出于这个原因,它可以说
print(“Both on”)
,因为我知道函数可以工作,但是循环似乎被破坏了,因为我相信变量是在循环之前设置的,所以每次都会重置状态。这有用吗?