Python使用功能切换布尔值

时间:2019-03-25 13:20:28

标签: python reference toggle

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

对于按键,我使用的是库'keyboard',该库使用热键回调。因此,我必须以某种方式将切换作为回调传递,并且需要一种切换它的方法。 (如果您采用其他方法,wihich可以解决此问题,对此也表示赞赏)

在while循环内执行类似shutdown的调用不起作用。因为键盘库没有一种简单的方法来检查按键或按键的释放,所以它将被重复调用直到按键被释放。

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()

该变量至少应在主程序本身中保持一致(也可以在全局范围内保持一致,这是我最新的方法无法解决),并在使用设置的热键后立即进行切换。

1 个答案:

答案 0 :(得分:1)

这只是变量范围的问题

检查

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