<[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Hi
>
> I wonder if Python is capable of the following: define a function which
> returns its argument.
> I mean:
> def magic_function(arg):
> ...... some magic code ...
>
> that behaves the following way:
>
> assert magic_function(3+4)=="3+4"
> assert magic_function([i for i in range(10)])=="i for i in range(10)]"
The arguments to Python functions are Python objects. In order to return
the argument as a string, you must pass it as a string.
>>> def magic(s): return s, eval(s)
>>> magic('3+4')
('3+4', 7)
>>> magic('[i**2 for i in [1,2,3]]')
('[i**2 for i in [1,2,3]]', [1, 4, 9])
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list