【问题标题】: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 内置变量。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-12
          • 2013-11-07
          • 2012-06-17
          • 2016-09-01
          • 2019-07-18
          • 1970-01-01
          相关资源
          最近更新 更多