Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:“tuple”对象不是可调用的解决方案-pyautogui_Python_Pyautogui - Fatal编程技术网

Python TypeError:“tuple”对象不是可调用的解决方案-pyautogui

Python TypeError:“tuple”对象不是可调用的解决方案-pyautogui,python,pyautogui,Python,Pyautogui,我不认为代码中有问题 问题: 试图运行python程序,但收到错误消息: TypeError:“tuple”对象不是可调用的解决方案 试图修复错误 查看了语法-没有发现任何问题。 没有发现任何逗号丢失。 没有看到任何不正确的索引语法。 代码 pixel函数显然返回一个元组。 元组和函数调用的参数都使用括号。 所以Python认为您正在尝试调用带有args的函数:194、78、147表示红色、绿色和蓝色。但您似乎想做的是检查像素返回的值是否等于元组194、78、147 有些对象是可调用的。例如,您

我不认为代码中有问题

问题:

试图运行python程序,但收到错误消息: TypeError:“tuple”对象不是可调用的解决方案

试图修复错误

查看了语法-没有发现任何问题。 没有发现任何逗号丢失。 没有看到任何不正确的索引语法。 代码

pixel函数显然返回一个元组。 元组和函数调用的参数都使用括号。 所以Python认为您正在尝试调用带有args的函数:194、78、147表示红色、绿色和蓝色。但您似乎想做的是检查像素返回的值是否等于元组194、78、147

有些对象是可调用的。例如,您可以创建一个实现def u call u self、r、g、b的类,然后创建一个名为pixel的函数,该函数返回这个实现了u call u的对象,您的代码将在没有语法错误的情况下运行

但是内置元组类型没有实现_调用_,因此“tuple”对象不可调用

我想这就是你想要的:

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)

您发布的代码将产生缩进错误。如果pyautogui.pixel1018159返回一个元组,pyautogui.pixel1018159194、78、147和类似的行将尝试将该元组作为函数调用。你的意图是什么?追踪的全部错误是什么?101815919478147。Python认为1018159是函数名,19478147是传递给该函数的参数。一,二。我想你可能想要101815919478147哪一行出错了?像pyautogui.pixel1289、159247、59、59这样的东西应该是什么意思?您是否正在尝试测试pyautogui.pixel1289159==247,59,59?我的猜测是,这些是抛出错误的行。@BuddyBob我认为您的语法工作方式不正确。像f1,23,4,5这样的东西是完全可以接受的-只要f1,2是可调用的。非常感谢!OP说错误消息是TypeError:“tuple”对象不是可调用的解决方案,而不是“tuple”对象是不可调用的。@martineau我认为不可调用的解决方案不是有效的错误。我在CPython源代码中进行了快速搜索,找不到任何在错误发生后放置解决方案的实例。我认为这是OP的一个错误。@Carcigenicate:我知道,这就是为什么我在问题下做出评论,该错误必须来自pyautogui,因为它不是标准的CPython解释器消息。但是它也可能是一个错误的陈述。如果这解决了你的问题,而且可能是这样,考虑把它标记为接受答案旁边的复选标记。
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)