【发布时间】:2015-10-18 02:21:01
【问题描述】:
我做错了。它应该使用构造函数打开文件,并调用一个方法read_names_from_files(),该方法将解析上述每个单词的计数文件。作为空闲的例子,我运行了这个程序:
>>> import fish
>>> a = fish.Fishes("filename.txt")
>>> freqs = a.read_names_from_files()
>>> freqs
>>> {}
但它没有显示字典中的解析内容。
class Fishes:
def __init__(self, fn):
self.file1 = open(fn, 'r')
self.freqs=self.read_names_from_files()
def read_names_from_files(self):
freqs = {}
for line in self.file1:
for word in line.split():
if word in freqs:
freqs[word] += 1
else:
freqs[word] = 1
return freqs
【问题讨论】:
-
尝试运行时出现:Fishes instance has no attribute fish
-
您问题中的代码不会产生该错误,因此它必须来自创建并尝试使用该类的其他代码。请添加您的问题(以及您的评论)。
-
为什么先初始化file1,然后在read_names_from_files中再次打开文件?
-
只有显示实际代码才能得到有用的答案。这个问题中给出的代码充满了拼写错误(例如,
Class大写 C、freqs与self.freqs、slf而不是self),并且会导致很多错误,但绝对不会在您声称它导致的错误中。 -
问题是,该类必须包含构造函数,并且它将通过将其作为参数打开一个文件。它应该调用一个方法 read_names_from_files() 将解析文件并将其放入字典
标签: python class constructor