This dictionary creation could be rewritten as a dictionary literal ...
在编写Python代码的时候,这个代码提示你应该不陌生吧:
This dictionary creation could be rewritten as a dictionary literal ...
Inspection info: This inspection detects situations when dictionary creation could be rewritten with dictionary literal.
这种情况对应的代码是如下的形式:
# 定义一个字典变量
error_msg = {}
# 为字典变量赋值
error_msg['0000']='SUCCESS'
error_msg['0001']='SYSTM ERROR'
error_msg['0002']='NETWORK ERROR'
再看一下代码提示:This dictionary creation could be rewritten as a dictionary literal
意思是说,字典的创建应该使用“字典字面量”。这里引出两个问题:(1)什么是字面量?(2)什么是字典字面量?
先看第一个问题:什么是字面量?
答案很简单,诸如:整数、浮点数以及字符串,都是字面量,如下所示:
# 10是个整数字面量
number = 10
# Tom是个字符字面量
name = "Tom"
搞清楚了字面量,再看第二个问题,什么是字典字面量?
答案也很简单,大括号{}就是字典字面量,大括号就能表示一个字典变量。另外,还大括号可以进行扩展:
person = {"name":"Tom","address":"China BeiJing","age":20}
搞清楚了字典字面量,那么问题:This dictionary creation could be rewritten as a dictionary literal,就有了破解之道:
error_msg = {'0000':'SUCCESS','0001':'SYSTM ERROR','0002':'NETWORK ERROR'}
再反过来看未修订之前的代码,真是脱裤子放屁,多此一举啊。
条条大路通罗马,其实定义字典还有一种方式,就是不使用大括号这种字面量,而是使用dict()函数的形式,如下所示:
# 定义一个字典变量
error_msg = dict()
# 为字典变量赋值
error_msg['0000']='SUCCESS'
error_msg['0001']='SYSTM ERROR'
error_msg['0002']='NETWORK ERROR'
用dict()定义字典,则不会再报错:This dictionary creation could be rewritten as a dictionary literal ...