首页 > 解决方案 > 如何动态打印函数调用中使用的参数?

问题描述

我有以下代码:

var1='aaa'
var2='bbb'
debug(var1, var2)

debug想要打印的功能:

"var1=aaa var2=bbb"

我的功能目前看起来像

def debug(thing1, thing2):
    print(f"{thing1=} {thing2=}")

和输出:

"thing1=aaa thing2=bbb"

我也尝试locals()在函数中使用,但得到了相同的输出。我想在输出中有“var1”和“var2”而不在打印语句中硬编码它们。

标签: pythonpython-3.x

解决方案


你需要以稍微不同的方式来解决这个问题。如前所述,没有办法debug知道变量名。

您需要提供该信息:

>>> import pprint
>>> var1 = 'aaa'
>>> var2 = 'bbb'
>>> def debug(**kwargs):
...     pprint.pprint(kwargs, width=20)
... 
>>> debug(var1=var1, var2=var2)
{'var1': 'aaa',
 'var2': 'bbb'}

推荐阅读