最近搞微信機器人,需要設計一個命令列表對應執行一系列程序,比如要:查積分 findScore()加積分 addScore()減積分 subtractScore()踢人 kick()設置誰為黑名單 blacklist()
然后想要用正則表達式來匹配,但是正則表達式要2行代碼才行,用if elif的話非要寫成def 才能一行寫下,而且綁定流程也很麻煩,剛學python只知道基本的語法,不知道python的技巧,直覺上覺得應該可以吧命令和執行流程變成key->value的形式,但是又不知道用python應該怎么優雅的寫出來,所以想請教各位大神,各顯神通哇~!
2 回答

料青山看我應如是
TA貢獻1772條經驗 獲得超8個贊
同樓上, 用dic
def get_option():
return "逗你玩"
def find_score():
pass
def add_score():
pass
def sub_tract_score():
pass
def kic():
pass
def blacklist():
pass
def main(op):
op_dic = {
"查積分": find_score,
"加積分": add_score,
"減積分": sub_tract_score,
"踢人": kic,
"黑名單": blacklist,
}
op = op_dic.get(op)
if op:
return op()
else:
print("查無此令")
if __name__ == "__main__":
option = get_option()
main(option)

MM們
TA貢獻1886條經驗 獲得超2個贊
用 dict ?
actions_d = {
'查積分': findScore,
'加積分': addScore,
'減積分': subtractScore,
'踢人': kick,
'設置誰為黑名單': blacklist,
}
actions_d.get(action, default_action)()
添加回答
舉報
0/150
提交
取消