错误类型错误:“海峡”对象不是可调用的蟒蛇(error TypeError: 'str

2019-10-29 22:06发布

我在我的代码,这个错误,我不知道如何固定

import nltk
from nltk.util import ngrams


def word_grams(words, min=1, max=4):
   s = []
   for n in range(min, max):
        for ngram in ngrams(words, n):
            s.append(' '.join(str(i) for i in ngram))
    return s

print word_grams('one two three four'.split(' '))

erorr在

s.append(' '.join(str(i) for i in ngram))

类型错误:“海峡”对象不是可调用

Answer 1:

您发布的代码是正确的,工作既蟒蛇2.7和3.6(3.6,你必须把括号围绕print语句)。 但是,代码原样具有3个空格缩进应固定为4位。

这里如何重现你的错误

s = []
str = 'overload str with string'
# The str below is a string and not function, hence the error
s.append(' '.join(str(x) for x in ['a', 'b', 'c']))
print(s)

Traceback (most recent call last):
  File "python", line 4, in <module>
  File "python", line 4, in <genexpr>
TypeError: 'str' object is not callable

在那里你重新定义海峡内置运营商像上面的例子一个STR值必须有某个地方。

这里较浅的同一问题的例子

a = 'foo'
a()
Traceback (most recent call last):
  File "python", line 2, in <module>
TypeError: 'str' object is not callable


Answer 2:

我得到通过运行代码的输出。

O/P:
['one', 'two', 'three', 'four', 'one two', 'two three', 'three four', 'one two three', 'two three four']

我估计误差不会来了。 这是你期待什么呢?



文章来源: error TypeError: 'str' object is not callable python