为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

吃鸡游戏 2022-09-27 16:07:50
以下是我希望能够做的事情x = 1f(x+3) # returns 'x+3' (a string)这可能吗?(Lisp 和 C 可以做到这一点,但必须是一个宏)f
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

这是可能的,尽管其他人已经说过。我能想到的唯一方法是检查源代码。我不能建议在现实中这样做。不过,这是一个有趣的小玩具。


from inspect import currentframe

import linecache

import re


def f(x):


    cf = currentframe()

    calling_line_number = cf.f_back.f_lineno


    calling_line = linecache.getline(__file__, calling_line_number)

    m = re.search(r"^.*?f\((?P<arg>.*?)\).*$", calling_line)

    if m:

        print (m.group("arg"))


x = 1

f(x + 3)

打印 ,这正是传递给 f() 的内容。x + 3


查看完整回答
反对 回复 2022-09-27
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

如果要添加的值(3) 是一个常量,


`def f(x):

    return f"{x}+3"


f(x)

如果不是,则可以传递两个参数,


def f(x, y):

    return f"{x} + {y}"


f(x, y)


查看完整回答
反对 回复 2022-09-27
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信