Python自动打印被调用函数变量名及对应值
作者:Jayce~ 发布时间:2022-08-05 09:50:38
标签:Python,打印,调用,函数,变量名,对应值
1.软件环境
Windows10 教育版64位
Python 3.6.3
2.问题描述
我们在定义一个函数或者是调用一个函数的时候,总是希望能够知道传入该被调用函数的具体值是多少?是否符合我们的预期?因此我们往往会将我们关心的值给打印出来(当然debug
也可以,但不能每次都debug
吧?),如下,我们创建了一个initial_printer
示例函数:
def initial_printer(variable_a, variable_b, variable_c, variable_d, variable_e, variable_f):
print('打印所有的变量:variable_a:{}, variable_b:{},, variable_c:{},, variable_d:{},, variable_e:{},, variable_f:{}'.format(
variable_a,
variable_b,
variable_c,
variable_d,
variable_e,
variable_f))
return variable_a + variable_b + variable_c + variable_d + variable_e + variable_f
if __name__ == '__main__':
result = initial_printer(variable_a=1, variable_b=2, variable_c=3, variable_d=4, variable_e=5, variable_f=6)
该函数将所有传入的变量使用Python
自带的print
函数打印了出来,运行之后确实看到打印成功了:
但这种方法有至少2个弊端:
有可能会因为你的粗心大意,在使用
print
格式化输出时,函数名和值错位,导致变量值打印错误,即variable_a
打印的可能是其它变量的值;如果你要新增一个变量或修改变量名称,那么又要修改
print
里面的变量和值;更进一步的,如果你的这个函数经常被修改,不可能每次都来修改上述用来打印变量的代码;
那这个时候是否有一种办法,在我们添加变量时,不需要修改打印的代码,让Python自动打印被调用函数的变量名及对应的值
呢
3.解决方法
这个时候就需要介绍今天的主角了:Python
自带的locals()
函数,该函数会以字典类型返回当前位置的全部局部变量。
对于函数
, 方法
,lambda 函式
, 类
,以及实现了 __call__
方法的类实例,它都返回 True
。因此,我们只需要将之前的打印语句:
print('打印所有的变量:variable_a:{}, variable_b:{},, variable_c:{},, variable_d:{},, variable_e:{},, variable_f:{}'.format(
variable_a,
variable_b,
variable_c,
variable_d,
variable_e,
variable_f))
换成locals()
即可,即:
# print('打印所有的变量:variable_a:{}, variable_b:{},, variable_c:{},, variable_d:{},, variable_e:{},, variable_f:{}'.format(
# variable_a,
# variable_b,
# variable_c,
# variable_d,
# variable_e,
# variable_f))
print('打印所有的变量:', locals())
4.结果预览
可以看到,只需要一个locals()
函数即可自动打印被调用函数的变量名和值,并且你随便怎么添加或修改变量名,它都会自动同步,简直不要太方便!!!
来源:https://blog.csdn.net/qq_15969343/article/details/125741924
0
投稿
猜你喜欢
- 见下表:序号列类型需要的存储量1TINYINT1 字节2SMALLINT2 个字节3MEDIUMINT3 个字节4INT4 个字节5INTE
- 一、引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存
- LBound函数:返回指定数组维的最小可用下标;UBound函数:返回指定数组维的最小可用上标;LBound(arrayname, [,di
- PHP getDocNamespaces() 函数实例返回 XML 文档的根节点中声明的命名空间:<?php $xml=<<
- 这个话题是应腾讯ISD同仁之邀在WebReBuild三周年交流会上做的主题分享。由于临场等原因有些问题当时没有讲明白,回来后按原有思路形成了
- 如要让数据库进行自动管理,则管理员需要预先定义一些可预测的管理任务以及这些任务发送的条件。当满足这些指定的条件,则数据库会自动运行管理员指定
- 测试环境:1:xp系统2:双显,1680×1050 + 1050×16803:chrome 版本4.14:ff版本3.6chrome是我的默
- 让Python提速超过40倍的神器:Cython人工智能最火的语言,自然是被誉为迄今为止最容易使用的代码之一的Python。Python代码
- echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print只
- 虽然以前我写过IE6、IE7、IE8共存的解决方案,但是看到IETester这个软件以后那些都已经没有意义了(那些办法副作用比较大,而且实现
- 内容简介展示如何给图像叠加不同等级的椒盐噪声和高斯噪声的代码,相应的叠加噪声的已编为对应的类,可实例化使用。以下主要展示自己编写的:加噪声的
- 我的测试环境是2000sever ie6.0+sp4 MYIE1.31 (成功通过测试)关闭窗口的途径常用4种:1.双击左上角图标2.直接双
- 异步 innerHTMLinnerHTML 插入节点的性能的问题,通常是我们最关注的。在回答这问题时,James Padolsey 给出了他
- 摘要:对动态SQL的程序开发进行了总结,并结合笔者实际开发经验给出若干开发技巧。 关键词:动态SQL,PL/SQL,高性能 1. 静态SQL
- 今天彬Go将和大家一起讨论网页设计趋势中很重要的环节,那就是”勾引”用户的按钮。所谓”勾引”用户的按钮,其实对于Web设计师来说,就是如何设
- 没人愿意等待。所以,没有访问者真的能够忍受一个打开速度极慢的网站。但是,网页打开速度到底对用户行为有什么影响,恐怕没几个人能够说清楚吧。前几
- JScript 具有全范围的运算符,包括算术、逻辑、位、赋值以及其他某些运算符。算术运算符描述 符号 负值 - 递增 ++ 递减 ? 乘法
- Jon Wiley, User Experience Designer for Google Apps, outlined some of
- 神奇创意相框! 是的,主要利用position的relative, absolute, z-index属性。结合Photo Frame(相框
- 译序:这篇文章是可用性大师 Jakob Nielsen 在10年前总结的,到今天仍然受用。通过这个时间跨度,可以得出,可用性话题不是某个时代