TypeError: get_edge() 需要3个参数(给了2个)

-1 投票
1 回答
2054 浏览
提问于 2025-04-18 00:11

我正在使用一个程序来合并一些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

我怀疑 get_edge() 这个函数需要两个位置参数,但你只传了一个,也就是一个元组。你需要把:

self.get_edge((av, bv))

替换成:

self.get_edge(av, bv)

撰写回答