Python:创建使用字典的类
我正在创建一个做一些简单图论计算的类,我在代码的底部创建了一个字典,我想知道如何在类中使用字典 我想试试这样的东西Python:创建使用字典的类,python,class,object,dictionary,Python,Class,Object,Dictionary,我正在创建一个做一些简单图论计算的类,我在代码的底部创建了一个字典,我想知道如何在类中使用字典 我想试试这样的东西 k = Graph(d.keys()) 但它不起作用,它给了我这个错误 TypeError: __init__() takes exactly 3 arguments (2 given) 有人有什么建议吗 class Graph: """docstring""" def __init__(self, node, degree): self.nod
k = Graph(d.keys())
但它不起作用,它给了我这个错误
TypeError: __init__() takes exactly 3 arguments (2 given)
有人有什么建议吗
class Graph:
"""docstring"""
def __init__(self, node, degree):
self.node = node
self.degree = degree
def Add(self):
return sum(node)
if __name__ == '__main__':
infile = raw_input("Enter File Name: ")
myfile = open(infile, 'r')
d = {}
with myfile as f:
next(f)
for line in f:
k,v = line.split()
d[int(k)] = int(v)
next(f)
k = d.keys()
v = d.values()
您想使用
**
运算符将字典解包为关键字参数:
k = Graph(**d)
现在还不完全清楚你在这里做什么,但让我猜猜: 您定义了一个接受2个参数的构造函数(我们不计算self): 。。您使用1个参数调用了图构造函数:
k = Graph(d.keys())
我想你想要
k = Graph(k, v)
…但我们确实需要查看您在何处创建Graph对象。是否要为每一行创建
Graph()
对象?当您将d.keys()
传递给Graph()
构造函数时,不清楚您预期会发生什么。读取文件时,该文件包含什么类型的数据?你需要给我们更多关于输入是什么以及你希望看到什么输出的细节。它不应该是Add
方法中的return sum(self.node)
吗?@MartijnPieters,我是编程新手,所以我不知道我在做什么,但我想要的是导入一长串键并将它们表示为“节点”。根据我的理解,如果我将列表“k”传递到“Graph()构造函数”,我可以使用它并在类中对其进行操作。TypeError:\uuu init\uuu()关键字必须是字符串这是我尝试时返回的结果,我有一个整数列表。你说你有一个字典,而不是列表。我很抱歉没有具体说明,但我想表示“k”作为节点,“v”作为度。数据类型是整数列表。
k = Graph(k, v)