TypeError:get_edge()只需3个参数(给定2个)

时间:2014-03-27 16:52:19

标签: python python-2.7 typeerror self

我正在使用一个程序来合并一些DNA序列,这个程序得到TypeError: get_edge() takes exactly 3 arguments (2 given)。反正有没有避免它?

以下是代码:

def path(self, path, flip=False):
    from vic.utils.iter import pairwise
    oo = []
    if len(path) == 1:
        m = "Singleton {0}".format(path[0])
        oo.append((path[0].v, True))
        return m, oo
    edges = []
    for a, b in pairwise(path):
        av, bv = a.v, b.v
        e = self.get_edge((av, bv))
        if not oo:  # First edge imports two nodes
            oo.append((e.v1.v, e.o1 == ">"))
        last = oo[-1]
        assert last == (e.v1.v, e.o1 == ">")
        oo.append((e.v2.v, e.o2 == ">"))
        if flip:
            se = str(e)
            e.flip()
        else:
            se = str(e)
        edges.append(se)
    return "|".join(edges), oo

和追溯:

 File "/home/wyim/vic/vic/graph.py", line 205, in path
    e = self.get_edge((av, bv))
TypeError: get_edge() takes exactly 3 arguments (2 given)

你能告诉我这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我怀疑get_edge()需要两个位置参数,而你只传递一个元组。替换:

self.get_edge((av, bv))

使用:

self.get_edge(av, bv)