2013-11-14 92 views
1

我写了下面的初始化,定义函数变量数组中

import numpy as np 
class FV: 
    def __init__(self,x=0,a=0,b=0,c=0): 
     r=np.array([a,b,c]) 
     self.t=x 
     self.s=r 

但是却对我说:

__init__() got an unexpected keyword argument 'r' 

当我输入P2 = FourVector(ct=99.9, r=[1,2,3])

回答

2

你”重新传递数组,而不是在函数内部创建它,您似乎想要执行r=np.array([a,b,c])行。

假设xct相同,请尝试P2 = FourVector(99.9,1,2,3)。否则,请确定您决定是否打电话给您的参数ctx。您通过ct,但在功能中使用x

您的班级还存在名称问题,您声明为FV,但您尝试使用FourVector。试着对你的名字做一点小心!

鉴于一些决定这件事,你的代码应该是这样的:

import numpy as np 
class FourVector: 
    def __init__(self,ct=0,a=0,b=0,c=0): 
     r=np.array([a,b,c]) 
     self.t=ct 
     self.s=r 

然后你就可以调用作为

P2 = FourVector(99.9,1,2,3) 

还要注意,由于分配r然后s=r,你可以直接做self.s=np.array([a,b,c]),除非你有理由分开保留r