我观看了视频和阅读文字,但我仍然很难掌握课程及其语法以及它们如何互动。我有以下代码,它接受CSV并将其放入列表中的dict。我希望在其他功能中分析此列表,但我不知道如何调用它并使用它。
如何使用' data_to_dict'中的列表?在' Top_Artists'?
class allData:
def data_to_dict(self):
try:
with open(self.filename, 'r') as data:
header = data.readline().strip().split(',')
entries = []
for row in data:
entry = row.strip().split(',')
listens = {}
for col_pos, col_header in enumerate(header):
listens[col_header] = entry[col_pos]
**return entries**
entries.append(listens)
except IOError:
return "Error."
def Top_Artists():
**entries = self.data_to_dict()**
artist_count = Counter()
for d in entries:
# counts unique artists
arts = d['artist']
artist_count[arts] += 1
更新: 我想出了我的问题 - 除了“自我”和“data_to_dict”中的回复之外,我补充道:
def __init__(self, filename):
self.filename = filename
答案 0 :(得分:0)
我在这里可以看到几个问题。
是最明显的解决方案entries = self.data_to_dict()
没有设置必要的参数(即文件名),也没有在注释中正确指出它是否具有必要的自身参数。因此,您需要以与此类似的方式发送文件名:
entries = self.data_to_dict("path/to/file")
,其他代码如下:
def data_to_dict(self, filename):
是最简单的硬编码解决方案
答案 1 :(得分:0)
我不清楚你要用这个例子做什么。类函数采用可以修改的参数(通常称为" self")。例如:
class Foo:
def make_list(self):
self.my_list = [1,2,3]
x = Foo()
x.make_list()
print(x.my_list)
查看关于类的python教程了解更多信息: https://docs.python.org/2/tutorial/classes.html
答案 2 :(得分:0)
当Python中的某个类中的方法必须以关键字 self
作为参数传递时,这将完全在同一个变量上返回该类。
class Something:
def method_1(self):
# type something
def method_2(self):
other = self.method_1()
method_2
使用method_1
。