-1

我正在创建一个执行一些简单图论计算的类,我在代码底部创建了一个字典,我想知道如何在类中使用字典?

我想尝试这样的事情,

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()
4

2 回答 2

0

您想使用**运算符将​​字典解压缩为关键字参数:

k = Graph(**d)
于 2013-10-23T15:24:48.137 回答
0

目前尚不完全清楚您在这里做什么,但让我猜测一下:

您定义了一个带有 2 个参数的构造函数(我们不计算 self):

def __init__(self, node, degree):

.. 并且您使用 1 个参数调用了图形构造函数:

k = Graph(d.keys())

我猜你想要

k = Graph(k, v)

...但我们确实需要查看您在哪里创建 Graph 对象。

于 2013-10-23T15:25:39.893 回答