如何解决TypeError: ‘tuple’ object is not callable 解决方案-pyautogui
我看不出是代码中的问题。
问题:
尝试运行python程序并收到错误消息:TypeError: 'tuple' object is not callable Solution
尝试修复错误
- 查看语法 - 没有发现任何问题。
- 没有发现任何缺失的逗号。
- 没有发现任何不正确的索引语法。
import pyautogui
import keyboard
import time
import random
import win32.lib.win32con as win32con
#Tile 1 position: X= 1018 Y= 159 RGB:(194,78,147)
#Tile 2 position: X= 1113 Y= 159 RGB:(3,255,255)
#Tile 3 position: X= 1196 Y= 159 RGB:(2,247,68)
#Tile 4 position: X= 1289 Y= 159 RGB:(247,59,59)
def KEYRIGHT(x,y):
pyautogui.RIGHT
time.sleep(0.01)
def KEYLEFT(x,y):
pyautogui.LEFT
time.sleep(0.01)
def KEYUP(x,y):
pyautogui.keyUp
time.sleep(0.01)
def KEYDOWN(x,y):
pyautogui.keyDown
time.sleep(0.01)
while keyboard.is_pressed('q') == False:
if pyautogui.pixel(1018,159)(194,147):
KEYRIGHT(1018,159)
if pyautogui.pixel(1113,159)(3,255):
KEYDOWN(1113,159)
if pyautogui.pixel(1196,159)(2,68):
KEYUP(1196,159)
if pyautogui.pixel(1289,159)(247,59):
KEYRIGHT(1289,159)
解决方法
pixel
函数显然返回一个元组。
元组和函数调用的参数都使用括号。
因此,Python 认为您正在尝试使用参数调用函数:(194,78,147)
显然代表红色、绿色和蓝色。但是您似乎想要做的是检查像素返回的值是否等于元组 (194,147)
有些对象是可调用的。例如,您可以创建一个实现 def __call__(self,r,g,b)
的类,然后创建一个名为 pixel
的函数,该函数返回这个实现 __call__
的对象,并且您的代码运行时不会出现语法错误。
但是内置的元组类型没有实现__call__
,所以“元组对象是不可调用的”
我认为这就是您想要的:
if pyautogui.pixel(1018,159) == (194,147):
KEYRIGHT(1018,159)
if pyautogui.pixel(1113,159) == (3,255,255):
KEYDOWN(1113,159)
if pyautogui.pixel(1196,159) == (2,247,68):
KEYUP(1196,159)
if pyautogui.pixel(1289,159) == (247,59,59):
KEYRIGHT(1289,159)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。