Accessing Python parse trees
Manlio Perillo
NOmanlio_perilloSPAM at libero.it
Sat Mar 5 16:38:43 EST 2005
On Sat, 05 Mar 2005 08:52:38 -0500, Kent Johnson <kent37 at tds.net>
wrote:
>Manlio Perillo wrote:
>> Anyway, here is an example of what I would like to do:
>>
>> #begin
>> def foo(**kwargs): print kwargs
>>
>> foo(a = 1, b = 2, c = 3)
>> #end
>>
>>
>> In the current implementation kwargs is a dict, but I need to have the
>> keyword argument sorted.
>> Unfortunately subclassing fron dict and installing the class in the
>> __builtin__ module (with the name 'dict') does not work, CPython uses
>> only builtin types.
>>
>> With the compiler module I can obtain the keyword arguments in the
>> order the were specified.
>> The problem is how to do this for every call to foo!
>
>Why not just pass the kind of argument you want? What is it you really need to do?
>
>def foo(kwds): print kwds
>
>foo(MyDict(a = 1, b = 2, c = 3))
>
>Kent
I don't understand your code.
Here an example using OrderedDict from twisted:
>>> import twisted.python.util as util
>>> foo(util.OrderedDict(a = 1, b = 2, c = 3))
{'a': 1, 'c': 3, 'b': 2}
Simply I can't use a dict.
I have to do, as an example example:
foo('a', 1, 'b', 2, 'c', 3)
or
foo(['a', 'b', 'c'], [1, 2, 3])
Thanks and regards Manlio Perillo
More information about the Python-list
mailing list