繁体   English   中英

TypeError:“ str”对象不可调用

[英]TypeError: 'str' object is not callable

我在使用Python时遇到了一个奇怪的问题。 出于某种原因,当我从命令行调用它时,可以随意使用replace()函数,但不能在特定的类中使用它。 该代码产生以下(众所周知的)错误:

    File "/homes/mmj11/malice/lexer.py", line 96, in replaceInTree
    tree[i] = tree[i].replace("  "," ")
    TypeError: 'str' object is not callable

我正在使用的功能如下:

   def replaceInTree(self, tree):
    for i in range(len(tree)):
      if type(tree[i] is str):
         tree[i] = tree[i].replace("  "," ")
         tree[i] = tree[i].replace(tree[i], self.getToken(tree[i]))
      else:
         tree[i] = self.replaceInTree(tree)
    return tree

我真的认为这不应该发生,因为我可以在命令行中执行完全相同的操作。 我非常确定str是可以调用的。

代替

 if type(tree[i] is str):

你不是故意要做

 if type(tree[i]) is str:

我会这样做:

if type(tree[i]) is str:

代替这个:

if type(tree[i] is str):

您编写的方式为if type(false) ,它等于if bool ,它将始终是真实的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM