You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:24:55