检索函数参数中的原始变量名
在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中文网其他相关文章!