重新分配字符串值时对象不可调用错误

2024-09-29 17:18:55 发布

您现在位置:Python中文网/ 问答频道 /正文

在第二次迭代中,下面的简单Python代码给出了一个错误:“str”是不可调用的

for i in range(1,3):
  print(i)
  str1="onestring";
  str3="thirdstring";
  str=str1+str(i)+str3;
  print(str);

我怎样才能解决这个问题


Tags: 代码infor错误rangeprintstrstr1
3条回答

答案很简单。变量“str”既是变量名又是函数。将变量名“str”更改为任何其他名称可以解决此问题

您使用了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))

请更改str变量,因为它是一个内置的Python变量

相关问题 更多 >

    热门问题