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"