Python代码正确执行print却报tuple不可调用TypeError如何解决
问题根因
你贴出的3行代码本身没有任何语法或逻辑错误,报错和这几行代码无关。触发'tuple' object is not callable的核心原因是:当前运行环境中内置的print函数已经被之前执行的代码覆盖为元组类型。
你大概率在跑这几行代码之前,写过类似print = (值1, 值2)的赋值语句——比如误写了print = ankur, yash这类代码,把print当成普通自定义变量赋值了元组。此时解释器执行print(ankur, yash)时,不会调用内置打印函数,而是会找到你定义的名为print的元组,尝试把元组当函数调用,自然会抛出类型错误。
排查与解决方案
- 回溯当前运行会话的历史代码,找到所有给
print赋值的语句,删除这类错误覆盖内置函数的代码。 - 如果是在Jupyter Notebook、IPython这类带状态的交互环境中运行,直接重启内核清空所有历史变量,之后重新运行你写的3行代码即可正常输出
Hi Hello。 - 日常编码注意不要使用Python内置标识符作为自定义变量名,除
print外,list、str、dict、int、tuple这类内置函数/类型名都不要用来命名变量,避免同类覆盖问题。
内容的提问来源于stack exchange,提问作者Yash Kothalkar
相关产品推荐
相关产品推荐

