Byte wrote: > Now what do I do if Func1() has multiple outputs and Func2() requires > them all to give its own output, as follows: > > import random > > def Func1(): > choice = ('A', 'B', 'C') > output = random.choice(choice) > output2 = random.choice(choice) > return output > return output2
The function will return at "return output", so "return output2" will never be reached. > def Func2(item1, item2): > print item1, item2 > > output1 = Func1() > Func2(output1) > > Thanks in advance, > -- /usr/bin/byte > Try this (I think its called "argument expansion", but I really don't know what its called, so I can't point you to docs): def Func1(): choice = ('A', 'B', 'C') output = random.choice(choice) output2 = random.choice(choice) return output, output2 def Func2(*items): print items output = Func1() Func2(*output1) BETTER: ======= You can also make a "generator" (which I have made generalized, which seems to be what you are striving for): def Gener1(num): choice = ('A', 'B', 'C') for i in xrange(num): yield random.choice(choice) def Func2(item): print item for item in Gener1(2): Func2(item) James -- James Stroud UCLA-DOE Institute for Genomics and Proteomics Box 951570 Los Angeles, CA 90095 http://www.jamesstroud.com/ -- http://mail.python.org/mailman/listinfo/python-list