Python中实现结构相似的函数调用方法
python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下:
>>>d={'key1':'value1',
...'key2':'value2',
...'key3':'value3'}
>>>printd['key2']
value2
>>>
lambda表达式也是很实用的东东,示例如下:
>>>f=lambdax:x**2 >>>printf(2) 4 >>>
两者结合可以实现结构相似的函数调用,使用起来很方便,示例如下:
示例一:不带参数
#!/usr/bin/python
msgCtrl="1:pause\n2:stop\n3:restart\nothertoquit\n"
ctrlMap={
'1': lambda:doPause(),
'2': lambda:doStop(),
'3': lambda:doRestart()}
defdoPause():
print'dopause'
defdoStop():
print'dostop'
defdoRestart():
print'dorestart'
if__name__=='__main__':
whileTrue:
printmsgCtrl
cmdCtrl=raw_input('Input:')
ifnotctrlMap.has_key(cmdCtrl):break
ctrlMap[cmdCtrl]()
示例二:带参数
#!/usr/bin/python
msgCtrl="1:+\n2:-\n3:*\nothertoquit\n"
ctrlMap={
'1': lambdax,y:x+y,
'2': lambdax,y:x-y,
'3': lambdax,y:x*y}
if__name__=='__main__':
whileTrue:
printmsgCtrl
cmdCtrl=raw_input('Input:')
ifnotctrlMap.has_key(cmdCtrl):break
printctrlMap[cmdCtrl](10,2),"\n"