Python调用Windows API时return语句无返回结果问题求助
问题排查:函数返回值未显示的原因及修复方案
嘿,我来帮你搞定这个问题!你的代码逻辑本身没大问题,主要是两个小细节导致你看不到返回结果:
1. 没有显式输出返回值
你调用了mouse_path(10),函数确实会返回收集到的鼠标路径列表,但Python脚本默认不会自动打印函数的返回结果——只有在交互式Python环境(比如直接敲python进入的命令行)里,直接调用函数才会自动显示返回值。在脚本文件里,你需要明确用print()来输出结果,或者把返回值赋值给变量后进行后续处理。
2. time.clock()已被废弃
另外,time.clock()在Python 3.3及以上版本已经被标记为废弃,推荐使用time.perf_counter()来测量时间间隔,它的精度更高,也更稳定。
修改后的完整代码
import win32api as win import time import sys def mouse_path(run): path = [] # 记录开始时间,用perf_counter替代废弃的clock start_time = time.perf_counter() # 循环判断:当前时间 - 开始时间 < 设定的运行时长 while time.perf_counter() - start_time < run: cords = win.GetCursorPos() time.sleep(0.1) path.append(cords) return path # 调用函数并打印返回的鼠标路径 mouse_path_result = mouse_path(10) print(mouse_path_result)
修复说明
- 替换
time.clock()为time.perf_counter(),避免在新版本Python中出现警告或错误; - 新增了
print()语句,显式输出函数返回的路径列表,这样运行脚本后就能看到结果了。
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

