我正在尝试借助单独的函数切换布尔值。 如果我的研究是正确的,则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()
该变量至少应在主程序本身中保持一致(也可以在全局范围内保持一致,这是我最新的方法无法解决),并在使用设置的热键后立即进行切换。
答案 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