Python 用函数切换布尔值

Python toggle boolean with function

我正在尝试借助单独的函数来切换布尔值。 如果我的研究是正确的,Python 中没有任何指示(我现在开始学习它)所以我不确定如何解决这个问题。

对于按键,我使用的是库 'keyboard',它使用热键回调。因此,我必须以某种方式将切换作为回调传递,并且需要一种切换它的方法。 (如果你有不同的方法可以解决这个问题,我们也很感激)

像关闭调用一样在 while 循环中执行它是行不通的。因为键盘库没有简单的方法来检查按键按下或按键释放,所以它会被重复调用,直到按键被释放。

import keyboard

# Global Variables
running = False

# ------------
#  FUNCTIONS
# ------------

def shutdown():
  print("Tool shutting down!")
  quit()

def toggle(b):
  b = not b

def init():
  running = False
  keyboard.add_hotkey('alt+1', toggle, args=[running])

# ------------
# MAIN PROGRAM
# ------------

init()

while True:
  if keyboard.is_pressed('alt+q'):
    shutdown()

变量应该至少在主程序本身是一致的(它也可以是全局一致的,这是我最新的方法但没有成功)并且一旦我使用我设置的热键就被切换。

只是变量作用域的问题

检查这个

var1 = False

def changeVar(va):
        va = not va

changeVar(var1)

print(var1)

def changeVar2():
        global var1 
        var1 = not var1
changeVar2()
print(var1)

并且在您的代码中,您需要按如下方式定义切换:

def toggle(b):
   global running
   running = not running