调用type()函数时触发TypeError: 'str' object is not callable错误,请求排查代码问题
解决TypeError: 'str' object is not callable(针对type()函数的问题)
嘿,我看你贴的这段代码本身其实是能正常运行的,不会触发你说的那个TypeError: 'str' object is not callable错误哦!运行你的代码:
decimal_number = 344 a = bin(decimal_number) print(a) print(type(a))
会输出类似0b101011000和<class 'str'>的结果,完全没问题。
那你遇到的错误大概率是因为在这段代码之前,你不小心把内置函数type当成变量名赋值成了字符串,比如写了这样的代码:
# 错误示例:覆盖了内置的type()函数 type = "这是一个字符串" # 之后再调用type()就会报错 decimal_number = 344 a = bin(decimal_number) print(type(a)) # 这里触发错误:'str' object is not callable
因为Python的内置函数名(比如type、print、bin这些)是可以被自定义变量覆盖的,当你把type赋值成字符串后,再用type()去调用它,就相当于试图调用一个字符串,自然会抛出类型错误。
解决办法:
- 检查你的整个代码文件,找到所有把
type当作变量名的地方,把变量名改成其他名字(比如my_type、data_type这类更清晰的名称) - 如果是在Python交互式环境(比如命令行的Python shell)里遇到这个问题,可以执行
del type命令,删除你自定义的type变量,恢复内置的type()函数
内容的提问来源于stack exchange,提问作者ascklee
相关产品推荐
相关产品推荐

