Robert, The subroutine can pass back expressions -- they do not have to be reduced to variables. So the last line of the subroutine could be: return expr1, expr2, ... Rick --- Rick Graves <gravesricharde@xxxxxxxxx> wrote: > Date: Tue, 28 Sep 2004 12:02:52 -0700 (PDT) > From: Rick Graves <gravesricharde@xxxxxxxxx> > Subject: Re: passing two or more variables from a > python routine. > To: yum@xxxxxxxxxxxxxxxxxxxx > > Robert, > > You wrote: > > > ... but I don't know how > > to return two variables from one subroutine > fragment > in python. > > Probably very simply. > > > In case no one has addressed this yet, you are > right. > (I am just a python newbie, but I know the answer to > that one.) > > In the subroutine, the last line should be like > this: > > return Svar1, Svar2 > > And the call in the calling routine should be: > > Cvar1, Cvar2 = subroutine( args ) > > BTW, the variables can have exactly the same names > in > the calling routine and subroutine, but this is not > a > requirement. So this would be OK in the subroutine: > > return var1, var2 > > And this would be OK in the calling routine: > > var1, var2 = subroutine( args ) > > I do not know the limit to the number of variables > you > can pass, but it is surely big. The value coming > out > of the subroutine is really a tuple, which is > automatically unpacked in the calling routine. And > the values coming out can be of different types. > The > number of targets and the number coming out must > match, however. > > I do not know how it could be any more simple than > that! > > Rick Graves > (python newbie) > > > --- yum-request@xxxxxxxxxxxxxxxxxxxx wrote: > > > > Message: 5 > > Date: Tue, 28 Sep 2004 12:21:56 -0400 (EDT) > > From: "Robert G. Brown" <rgb@xxxxxxxxxxxx> > > Subject: [Yum] distribution variable works... > > To: "Yellowdog Updater, Modified" > <yum@xxxxxxxxxxxxxxxxxxxx> > > Message-ID: > > > <Pine.LNX.4.44.0409281138170.20382-100000@xxxxxxxxxxxxxxxxxxxxxxx> > > Content-Type: TEXT/PLAIN; charset=US-ASCII > > > > On Tue, 28 Sep 2004, Robert G. Brown wrote: > > > > The following (2.0.7 derived) config.py actually > works and does the > > substitutions and everything. It isn't efficient > - > both variables > > could > > be set with one set of rpm.TransactionSet() calls, > but I don't know how > > to return two variables from one subroutine > fragment > in python. > > Probably very simply. > > > > > >