首页  >  文章  >  后端开发  >  你能在Python函数中检索原始变量名吗?

你能在Python函数中检索原始变量名吗?

Barbara Streisand
Barbara Streisand原创
2024-10-31 17:34:02904浏览

Can You Retrieve Original Variable Names in Python Functions?

在 Python 函数中检索原始变量名称

在 Python 中,似乎需要在传递变量时获取变量的原始名称到一个函数。但是,该语言并不直接支持此任务。

要解决此问题,可以利用检查模块,但由于潜在的缺点和缺陷,不建议使用。

<code class="python">import inspect

def foo(a, f, b):
    frame = inspect.currentframe()
    frame = inspect.getouterframes(frame)[1]
    string = inspect.getframeinfo(frame[0]).code_context[0].strip()
    args = string[string.find('(') + 1:-1].split(',')

    names = []
    for i in args:
        if i.find('=') != -1:
            names.append(i.split('=')[1].strip())

        else:
            names.append(i)

    print(names)

def main():
    e = 1
    c = 2
    foo(e, 1000, b=c)

main()</code>

输出:

['e', '1000', 'c']

重要说明:

  • 此方法应被视为一种 hack,不要在生产代码中使用。
  • 它在某些情况下可能会中断,例如使用嵌套函数或 lambda 表达式时。
  • 还有其他方法,例如将变量名称作为附加参数传递。

以上是你能在Python函数中检索原始变量名吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn