设计映射关系
def doSomething(condition):
if condition == 0:
work()
else if condition == 1:
study()
else if condition == 2:
palyGames()
...
显然可以设计一个映射关系,可以让结构更加清爽。
def doSomethin(condition):
mapDict = {0:work, 1:study, 2:playGames}
result = mapDict[condition]()
setdefault 仅限操作字典结构
这个函数通常使用在:当作为服务端接收客户端消息,而客户端的信息通常会设计成jason格式,而服务端解析成字典格式后,需要判断某个key是否在传过来的信息中。如果不使用这个函数,你会发现自己将需要使用很多if判断,或者静态断言。比如
def getInfoFromRequest(request):
if 'name' in request.keys():
doSomethingAboutHaveName(request['name'])
else:
doSomethingAboutNoName()
if 'age' in request.keys():
doSomethingAboutAge(request['age'])
else:
doSomethingAboutNoAge()
...
这样会让自己的代码结构臃肿不堪,如果采用setdefault可以先在消息检查函数中检查一遍,给某些约定好的字段一个默认值,就不用担心没有该字段的值,导致一些业务层面的错误。
def check(request):
setdefault(request['name'],'qiu')
setdefault(request['age'],'25')
...
def getInfoFromRequest(request):
check(request)
doSomethingAboutHaveName(request['name'])
doSomethingAboutAge(request['age'])
...
这样改后,消除了if判断,即使客户端没有正确的字段信息,也可以保证执行顺序按计划进行。