打印变量名称的函数

时间:2021-04-21 17:46:24

标签: python variables printing names

当我使用“打印”语句时,我喜欢描述我正在打印的变量的名称。例如。我会这样做:

A = 1
B = 2

print(f'A = {A}\nB = {B}\n')

获得:

>> A = 1
   B = 2

我想编写一个函数来打印所打印变量的名称,这样我就不必一直编写 f 字符串了。 我试过了:

import inspect

def new_print(*args):
    for arg in args:
        variable_name = inspect.signature(new_print)
        print(f'{variable_name} = {arg}')
    print('')   
    
  
new_print(A,B)   

但我明白了:

(*args) = 1
(*args) = 2 

2 个答案:

答案 0 :(得分:2)

从 Python 3.8 开始,您可以使用此 f-string syntax 来打印表达式及其值,而不是创建新函数:

>>> a = 123
>>> print(f'{a=}')
a=123
>>> print(f'Debug output: {a*2=}')
Debug output: a*2=246

答案 1 :(得分:1)

变量的名称只是在您所在的任何范围内引用该的一种方式。它不会随变量一起移动,当然也不会通过 *args。最多,您可以发送 **kwargs 并引用密钥,但您必须像 new_print(A=A, B=B)

一样调用它
def new_print(**kwargs):
    for argname, argval in kwargs.items():
        print(f"{argname} = {argval}")
    print("")

像这样运行:

A = 1
B = 2
new_print(A=A, B=B)

给出输出

A = 1
B = 2

相关问题