我编写了一个代码,用于存储文本文件中出现的单词并将其存储到字典中:
class callDict(object):
def __init__(self):
self.invertedIndex = {}
然后我写了一个方法
def invertedIndex(self):
print self.invertedIndex.items()
以下是我打电话的方式:
if __name__ == "__main__":
c = callDict()
c.invertedIndex()
但它给了我错误:
Traceback (most recent call last):
File "E\Project\xyz.py", line 56, in <module>
c.invertedIndex()
TypeError: 'dict' object is not callable
我该如何解决这个问题?
答案 0 :(得分:6)
您正在代码中定义一个方法和一个实例变量,两者都具有相同的名称。这将导致名称冲突,从而导致错误。
更改其中一个名称以解决此问题。
因此,例如,此代码应该适合您:
class CallDict(object):
def __init__(self):
self.inverted_index = {}
def get_inverted_index_items(self):
print self.inverted_index.items()
使用以下方法检查:
>>> c = CallDict()
>>> c.get_inverted_index_items()
[]
还可以使用ozgur's answer装饰器检查@property
。
答案 1 :(得分:2)
除了mu's回答,
@property
def invertedIndexItems(self):
print self.invertedIndex.items()
然后就是你如何调用它:
if __name__ == "__main__":
c = callDict()
print c.invertedIndexItems
答案 2 :(得分:1)
方法是Python中的属性,因此您无法在它们之间共享相同的名称。重命名其中一个。