Python调用macro函数提示‘未定义’,代码问题求助
函数未定义问题的原因与修复
这是Python解释执行机制导致的问题:Python代码是从上到下逐行解释运行的,当你的代码执行到第8行调用macro('hold','w',3)时,macro函数的定义(从第12行开始)还没被执行到,Python自然会判定这个函数未定义。
修复步骤
把macro函数的定义挪到所有调用它的代码之前,也就是while循环的上方即可。
修改后的完整代码:
import pyautogui import keyboard import time def macro(type,key,seconds): endtime = time.time() + seconds while time.time() < endtime: if type == 'hold': pyautogui.hold(key) while True: try: if keyboard.is_pressed('`'): macro('hold','w',3) break except: break
额外建议
你的except块没有指定具体异常类型,这会捕获所有异常(包括一些你可能不想忽略的错误),建议改为捕获明确的异常类型,比如:
except KeyboardInterrupt: break
内容的提问来源于stack exchange,提问作者TenCommads
相关产品推荐
相关产品推荐

