在类的初始化中使用数组中的变量定义函数

时间:2013-11-14 17:50:46

标签: python arrays class numpy initialization

我写了以下内容,

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])

1 个答案:

答案 0 :(得分: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