2011-11-18 120 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

谢谢!就是我正在寻找的东西! –