为什么会发生TypeError

时间:2015-07-06 08:09:32

标签: python arguments typeerror

为什么会发生TypeError?

这种情况如下:

class kyori():
 def create_distmatrix(seif,arg):
     city_x     = randn(N)    
     city_y     = randn(N)    
     global city_dists
     for i in range(N):
         seif.city_dists.append([])
         for j in range(N):
             dx = city_x[i]-city_x[j]
             dy = city_y[i]-city_y[j]
             seif.city_dists[i].append(sqrt(dx**2 + dy**2))

错误代码:

Traceback (most recent call last):
 File "C:\Users\****\Documents\workspace\*****\src\sales.py", line 74, in <module>
   a.create_distmatrix()
TypeError: create_distmatrix() takes exactly 2 arguments (1 given)

1 个答案:

答案 0 :(得分:0)

您似乎想要self而不是seif。您在函数定义中有第二个参数:

def create_distmatrix(seif,arg):

但是在调用它(a.create_distmatrix())时你没有通过争论导致TypeError。改变

def create_distmatrix(seif,arg):

def create_distmatrix(self):

解决问题。您似乎无法在函数中的任何位置使用arg。所以你不需要它。