2011-11-18 125 views
2

所以我有一個對象:創建類的實例在屬性

class Particle(object): 
    def __init__(self, x, y, vx, vy, ax, ay): 
     self._x = int(x) 
     self._y = int(y) 
     self._vx = int(vx) 
     self._vy = int(vy) 
     self._ax = int(ax) 
     self._ay = int(ay) 
     # ... 

我想從號碼列表創建對象的實例。我會怎麼做? Particle(list)不起作用,因爲它只輸入一個列表,而不是列表中的每個值。非常感謝,我確信有一個非常明顯的答案。

回答

3

由星普瑞列表名稱:

def foo(a, b, c): 
    print(a, b, c) 

a = [1,2,3] 
foo(*a) 
# 1 2 3 

星解包的列表中,這給3個獨立的價值觀。

+0

非常感謝!我知道有一個簡單的方法可以做我想做的事! –

2

你需要什麼叫做「解包參數列表」。 以下是取自tutorial的一個示例:

>>> range(3, 6)    # normal call with separate arguments 
[3, 4, 5] 
>>> args = [3, 6] 
>>> range(*args)   # call with arguments unpacked from a list 
[3, 4, 5] 
+0

謝謝!就是我正在尋找的東西! –