微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

打印变量名称的函数

如何解决打印变量名称的函数

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

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 

解决方法

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

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

变量的名称只是在您所在的任何范围内引用该的一种方式。它不会随变量一起移动,当然也不会通过 *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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。