Python:创建使用字典的类

时间:2013-10-23 15:17:39

标签: python class object dictionary

我正在创建一个执行一些简单的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()

2 个答案:

答案 0 :(得分:0)

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

k = Graph(**d)

答案 1 :(得分:0)

目前还不完全清楚你在做什么,但让我猜一下:

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

def __init__(self, node, degree):

..你用一个参数调用图构造函数:

k = Graph(d.keys())

我猜你想要

k = Graph(k, v)

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