Python 内省:以字符串形式返回函数参数?

以下是我希望能够做的事情


x = 1


f(x+3) # returns 'x+3' (a string)

这可能吗?


(Lisp 和 C 可以做到这一点,但必须是一个宏)f


吃鸡游戏
浏览 99回答 2
2回答

鸿蒙传说

这是可能的,尽管其他人已经说过。我能想到的唯一方法是检查源代码。我不能建议在现实中这样做。不过,这是一个有趣的小玩具。from inspect import currentframeimport linecacheimport redef f(x):&nbsp; &nbsp; cf = currentframe()&nbsp; &nbsp; calling_line_number = cf.f_back.f_lineno&nbsp; &nbsp; calling_line = linecache.getline(__file__, calling_line_number)&nbsp; &nbsp; m = re.search(r"^.*?f\((?P<arg>.*?)\).*$", calling_line)&nbsp; &nbsp; if m:&nbsp; &nbsp; &nbsp; &nbsp; print (m.group("arg"))x = 1f(x + 3)打印 ,这正是传递给 f() 的内容。x + 3

慕码人8056858

如果要添加的值(3) 是一个常量,`def f(x):&nbsp; &nbsp; return f"{x}+3"f(x)如果不是,则可以传递两个参数,def f(x, y):&nbsp; &nbsp; return f"{x} + {y}"f(x, y)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python