2013-11-14 88 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