On Wed, Dec 22, 2010 at 3:15 PM, Victor Eijkhout <s...@sig.for.address> wrote: > So I have a generator, either as a free function or in a class and I > want to generate objects that are initialized from the generated things. > > def generator(): > for whatever: > yield something > class Object(): > def __init__(self): > self.data = # the next thing from generator > > I have not been able to implement this elegantly. For external reasons > the following syntax is unacceptable: > > for g in generator(): > ob = Object(g) > > I really want to be able to write "Object()" in any location and get a > properly initialized object. > > Hints appreciated. > > Victor. > -- > Victor Eijkhout -- eijkhout at tacc utexas edu > -- > http://mail.python.org/mailman/listinfo/python-list >
You likely want a class variable: #!/usr/bin/python def generator(): i = 0 while True: yield i i += 1 class Object: gen = generator() def __init__(self): self.data = Object.gen.next() def __str__(self): return str(self.data) o1 = Object() o2 = Object() o3 = Object() print o1 print o2 print o3 -- http://mail.python.org/mailman/listinfo/python-list