S
Steven D'Aprano
Kay said:jalanb wrote:
You might like the version here:
http://www.jorendorff.com/toys/out.html
Especially the "need to know" presentation, which is cute
--
Alan
http://aivipi.blogspot.com
Thank you for the tip.
Meanwhile, I found a shorter solution to my problem:
def magic(arg):
import inspect
return inspect.stack()[1][4][0].split("magic")[-1][1:-1]
assert magic(3+4)=="3+4"
Alain
Does it? Using your function I keep an assertion error. Storing the
return value of magic()in a variable s I receive the following result:
def magic(arg):
import inspect
return inspect.stack()[1][4][0].split("magic")[-1][1:-1]
s = magic(3+4) # magic line
'lin'
BTW grepping the stack will likely cause context sensitive results.
Kay
This is no production-ready code, just a proof of concept.
Adding 3 or 4 lines would make it more robust.
Just hope someone else will benefit from this discussion.
Doesn't work for me either:
.... import inspect
.... return inspect.stack()[1][4][0].split("magic")[-1][1:-1]
....Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 3, in magic
TypeError: unsubscriptable object
Kay gets an AssertionError, I get a TypeError. I think describing it as
"proof of concept" is rather optimistic.
Here is the inspect.stack() I get:
[(<frame object at 0x825d974>, '<stdin>', 2, 'magic', None, None),
(<frame object at 0x8256534>, '<stdin>', 1, '?', None, None)]