Python使用AHK模块的image_search返回None时条件判断失效问题
Python AHK模块image_search返回值判断错误解决方案
问题背景
在Python环境中使用AHK模块调用image_search()方法实现屏幕图片查找,此前测试pyautogui的locateOnScreen方法运行速度远慢于AHK,因此选择AHK实现该功能。
初始错误代码
location = ahk.image_search('images/example.png') print(location) if location == 'None': print('nono') else: pyautogui.moveTo(location) ahk.click() print('clicked')
异常运行日志
C:\>py -3 testing.py None clicked
问题原因
核心错误为混淆了Python内置空值常量None和字符串'None':
ahk.image_search未找到目标图片时返回的是Python原生的None空对象,不是内容为None的字符串print()函数输出None对象时会自动转换为文本None显示,误导开发者误以为返回值是字符串类型,导致location == 'None'的判断永远为False,程序始终进入else分支执行点击逻辑- Python中判断空值
None必须使用is运算符,不能用==对比字符串
修复后可运行代码
location = ahk.image_search('images/example.png') print(location) if location is None: print('nono') else: pyautogui.moveTo(location) ahk.click() print('clicked')
内容的提问来源于stack exchange,提问作者nuwngs
相关产品推荐
相关产品推荐

