【问题标题】:Object is not callable error when reassigning a string value重新分配字符串值时对象不可调用错误
【发布时间】:2015-10-01 06:33:20
【问题描述】:
第二次迭代中的以下简单 Python 代码给了我错误:'str' is not callable。
for i in range(1,3):
print(i)
str1="onestring";
str3="thirdstring";
str=str1+str(i)+str3;
print(str);
我该如何解决这个问题?
【问题讨论】:
标签:
python
for-loop
concatenation
【解决方案1】:
您使用str 作为变量名。从而隐藏内置。
然后你尝试在自己的定义中调用变量str(i)。
如您所见,使用内置函数的名称作为变量是个坏主意。仅出于将内置替换为您自己的版本的非常高级的目的是可能的。
你可以在这里看到下面这个简单的例子http://ideone.com/z70iRn
orig_str = str
def my_str(o):
print("str called")
return orig_str(o)
str = my_str
print(str(0))
【解决方案2】:
答案很简单。变量“str”既用作变量名又用作函数。将变量名称“str”更改为任何其他名称即可解决问题。
【解决方案3】:
请更改 str 变量,因为它是 Python 内置变量。