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 は呼び出し可能であることを確信しています。