TypeError:正好接受1个参数(给定2个)Python错误

时间:2017-11-02 17:36:49

标签: python

问题是我有这个功能:

def fuerza_repulsion(x):
    area = 100 * 100
    k = math.sqrt(area / len(self.grafo[0]))
    return ((k**2 / x) * c2)

并在此行中

f_mod = self.fuerza_repulsion(math.sqrt(dx**2 + dy**2))

我有这个错误:

  

TypeError:fuerza_repulsion()只取1个参数(给定2个)

我该如何解决?

1 个答案:

答案 0 :(得分:5)

看起来你的函数是类的一部分,在这种情况下,函数的第一个参数需要是self,类对象本身。 (另外,正如@SRC指出的那样,你通常称之为类功能'方法')

因此请使用:

def fuerza_repulsion(self, x):
    area = 100 * 100
    k = math.sqrt(area / len(self.grafo[0]))
    return ((k**2 / x) * c2)