我正在创建一个执行一些简单的Graph Theory计算的类,我在代码的底部创建了一个字典,我想知道如何在类中使用该字典?
我想尝试这样的事情,
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()
答案 0 :(得分:0)
您希望使用**
运算符将字典解压缩为关键字参数:
k = Graph(**d)
答案 1 :(得分:0)
目前还不完全清楚你在做什么,但让我猜一下:
你定义了一个带有2个参数的构造函数(我们不计算自己):
def __init__(self, node, degree):
..你用一个参数调用图构造函数:
k = Graph(d.keys())
我猜你想要
k = Graph(k, v)
...但我们确实需要查看您在哪里创建Graph对象。