你能检索传递给 Python 函数的原始变量名吗?

DDD
发布: 2024-11-01 17:00:02
原创
889 人浏览过

Can You Retrieve the Original Variable Names Passed to a Python Function?

检索传递给函数的原始变量名称

在 Python 中,获取传递给函数的变量的原始名称可能看起来很简单任务。然而,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']
登录后复制

需要注意的是,此技术只能用于教育或实验目的。不建议在生产代码中实现此方法,因为它可能会导致代码脆弱、难以调试,并且可能容易出现安全问题。

一般来说,最好传递变量名称显式作为函数的附加参数,或使用其他方法来处理不需要获取原始变量名称的任务。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!