Is this possible in Python?
a at b.c
Mon Mar 13 19:35:53 CET 2006
I don't think this is what you want (a string representation of the
argument passed to a function as that argument is at runtime is way
beyond my abilities), but this can retrieve the literal text in the
function call as it appears in the .py file, assuming you have the .py
file available and not just the .pyc:
### Call this file "pyfunargtest.py"
fname = 'pyfunargtest.py'
testfunname = 'f'
flines = open(fname,'r').readlines()
for i in flines:
if i.find(testfunname)>-1 and i.find('def '+testfunname)==-1:
s = i
leftbracketposition = s.find('(')
rightbracketposition = s.find(')')
arg = s[leftbracketposition+1:rightbracketposition]
alainpoint at yahoo.fr wrote:
> 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)]"
> It is not trivial at all and might require some bytecode hacking that i
> am unable to do myself BUT you are the experts ;-)
More information about the Python-list