我不认为代码中有问题
问题:
试图运行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, 78, 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)
pixel
函数显然返回一个元组。 元组和函数调用的参数都使用括号。 所以Python认为您试图调用一个带有args的函数:(194, 78, 147)
表示红色、绿色和蓝色。但您似乎想做的是检查pixel返回的值是否等于tuple(194, 78, 147)
有些对象是可调用的。例如,您可以创建一个实现
def __call__(self, r, g, b)
的类,然后创建一个名为pixel
的函数,该函数返回这个实现__call__
的对象,您的代码运行时不会出现语法错误但是内置的tuple类型没有实现
__call__
,因此“tuple”对象不可调用”我想这就是你想要的:
相关问题 更多 >
编程相关推荐