<[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