Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法
更新時間:2015年03月10日 11:24:16 投稿:junjie
這篇文章主要介紹了Python中實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用方法,本文講解使用dict和lambda結(jié)合實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用,給出了不帶參數(shù)和帶參數(shù)的實例,需要的朋友可以參考下
python的dict用起來很方便,可以自定義key值,并通過下標訪問,示例如下:
復(fù)制代碼 代碼如下:
>>> d = {'key1':'value1',
... 'key2':'value2',
... 'key3':'value3'}
>>> print d['key2']
value2
>>>
lambda表達式也是很實用的東東,示例如下:
復(fù)制代碼 代碼如下:
>>> f = lambda x : x**2
>>> print f(2)
4
>>>
兩者結(jié)合可以實現(xiàn)結(jié)構(gòu)相似的函數(shù)調(diào)用,使用起來很方便,示例如下:
示例一:不帶參數(shù)
復(fù)制代碼 代碼如下:
#! /usr/bin/python
msgCtrl = "1 : pause\n2 : stop\n3 : restart\nother to quit\n"
ctrlMap = {
'1': lambda : doPause(),
'2': lambda : doStop(),
'3': lambda : doRestart()}
def doPause():
print 'do pause'
def doStop():
print 'do stop'
def doRestart():
print 'do restart'
if __name__ == '__main__':
while True:
print msgCtrl
cmdCtrl = raw_input('Input : ')
if not ctrlMap.has_key(cmdCtrl):break
ctrlMap[cmdCtrl]()
示例二:帶參數(shù)
復(fù)制代碼 代碼如下:
#! /usr/bin/python
msgCtrl = "1 : +\n2 : -\n3 : *\nother to quit\n"
ctrlMap = {
'1': lambda x,y : x+y,
'2': lambda x,y : x-y,
'3': lambda x,y : x*y}
if __name__ == '__main__':
while True:
print msgCtrl
cmdCtrl = raw_input('Input : ')
if not ctrlMap.has_key(cmdCtrl):break
print ctrlMap[cmdCtrl](10,2),"\n"
相關(guān)文章
PyQt QListWidget修改列表項item的行高方法
今天小編就為大家分享一篇PyQt QListWidget修改列表項item的行高方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06淺談python元素如何去重,去重后如何保持原來元素的順序不變
這篇文章主要介紹了淺談python元素如何去重,去重后如何保持原來元素的順序不變?具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02