__init__ with multiple list values

Gnarlodious gnarlodious at gmail.com
Sun Oct 30 11:02:22 EDT 2011


Initializing a list of objects with one value:

class Order:
 def __init__(self, ratio):
  self.ratio=ratio
 def __call__(self):
  return self.ratio

ratio=[1, 2, 3, 4, 5]
Orders=[Order(x) for x in ratio]


But now I want to __init__ with 3 values:

class Order:
 def __init__(self, ratio, bias, locus):
  self.ratio=ratio
  self.bias=bias
  self.locus=locus
 def __call__(self):
  return self.ratio, self.bias, self.locus

ratio=[1, 2, 3, 4, 5]
bias=[True, False, True, False, True]
locus=['A', 'B', 'C', 'D', 'E']
Orders=[Order(x,y,z) for x,y,z in [ratio, bias, locus]]

>>> ValueError: too many values to unpack (expected 3)

How to do it?

-- Gnarlie



More information about the Python-list mailing list