我有以下條件陳述句:
if(action == 'actionA'):
if(collection == 'collectionA'):
doActionA(collectionA)
elif(collection == 'collectionB'):
doActionA(collectionB)
if(action == 'actionB'):
if(collection == 'collectionA'):
doActionB(collectionA)
elif(collection == 'collectionB'):
doActionB(collectionB)
這段代碼似乎設計得很糟糕,有沒有更好的pythonical方式來做到這一點?
uj5u.com熱心網友回復:
根據名稱“選擇”元素的經典方法是使用字典。字典可以保存任何型別的物件,包括函式。
collections = {'collectionA': collectionA; 'collectionB': collectionB}
doActions = {'actionA': doActionA; 'actionB': doActionB}
# do action, without error checking
doActions[action](collections[collection])
# do action, with default value
doActions.get(action, doDefaultAction)(collections.get(collection, defaultCollection))
# do action, only if values are correct
if action in doActions and collection in collections:
doActions[action](collections[collection])
uj5u.com熱心網友回復:
如果是這樣,即不可能有其他操作和集合,請結合您的陳述:
if(
action == 'actionA' and
collection == 'collectionA'
):
doActionA(collectionA)
elif(
collection == 'collectionB'
):
doActionA(collectionB)
if(
action == 'actionB' and
collection == 'collectionA'
):
doActionB(collectionA)
elif(
collection == 'collectionB'
):
doActionB(collectionB)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/449008.html
標籤:Python python-3.x 算法 设计模式 条件语句
