dynamically creating variables
Larry Bates
larry.bates at websafe.com
Fri Mar 3 17:54:17 EST 2006
rambham at gmail.com wrote:
> I am writing a parser and I have a routine that can digest
> a series of tokes:
>
> def digest(*args)
>
> I use it like this: digest("FOR", "IDENT", "EQ", "INTVAL", "COLON").
> This part works fine. My digest function returns a list of the values
> associated with each token.
>
> dummy1, ident, dummy2, start = digest("FOR", "IDENT", "EQ", "INTVAL",
> "COLON")
>
> But I dont like the way this looks and I want my digest routine to do
> more work. I want to be able to specify the variable bindings in the
> call to digest - and not have them be on the LHS of the assignment.
>
> Ideally I want to call digest like this:
>
> digest("FOR", ("IDENT",ident), "EQ", ("INTVAL",start), "COLON")
>
> and have ident and start be local variable defined in the place that
> calls digest.
>
> Is it possible to do something like that?
>
> -Ram
>
Can't do what you want specifically, but you can stuff everything into
a dictionary and pass it around.
I'm not 100% sure I understand what you want to accomplish, but I
hope this helps. Have digest return a dictionary of tokens/values.
tokenDict=digest("FOR", "IDENT", "EQ", "INTVAL", "COLON")
then refer to things as tokenDict['ident'], tokenDict['start']
-Larry Bates
More information about the Python-list
mailing list