【问题标题】:TypeError: get_edge() takes exactly 3 arguments (2 given)TypeError: get_edge() 正好需要 3 个参数(给定 2 个)
【发布时间】:2014-05-06 19:28: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)

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

【问题讨论】:

  • 我怀疑 alecxe 是正确的,但为了完整起见,在此处包含 get_edge() 方法会有所帮助。
  • @MartijnPieters 添加了I suspect,看起来像this..
  • 那将是一个候选人,是的。

标签: python python-2.7 typeerror self


【解决方案1】:

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

self.get_edge((av, bv))

与:

self.get_edge(av, bv)

【讨论】:

    猜你喜欢
    • 2013-04-07
    • 2012-03-15
    • 1970-01-01
    • 2014-05-31
    • 2016-07-16
    • 2013-06-12
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    相关资源
    最近更新 更多