Python:如何在函数调用过程中查找当前计算参数的名称

python: how to find name of currently evaluating argument during function call

提问人:lowtech 提问时间:1/8/2023 更新时间:1/8/2023 访问量:56

问:

给出下面的代码示例:如何获取与函数get_arg_val的特定计算相对应的参数名称。

def do_sum(a, b, c):
    return a + b + c


def get_arg_val():
    print("call f") # what argument this call corresponds to: a, b or c ???
    return 1

x = do_sum(get_arg_val(), get_arg_val(), get_arg_val())
print(x)
python-3.x 参数传递 introspection 函数-call

评论

0赞 juanpa.arrivillaga 1/8/2023
出于好奇,你为什么需要这样做?
0赞 Mechanic Pig 1/8/2023
我想知道刚打电话时应该打印什么.get_arg_val()
0赞 lowtech 1/8/2023
@juanpa.arrivillaga 这是用于跟踪程序执行的,也可以用于交互式调试
2赞 Klaus D. 1/8/2023
你不能。 之前调用。而且你无法追溯到未来。get_arg_valdo_sum
1赞 Mechanic Pig 1/8/2023
@juanpa.arrivillaga Introspection 可以在 Python 3.11 中定位函数调用的位置。但是,如果在函数调用中使用解包(例如),由于不能仅根据代码本身来预测可迭代对象的长度,因此我们无法知道返回值将传递给哪个参数。func(*iterable1, get_arg_val(), *iterable2)

答: 暂无答案