最近搞微信机器人,需要设计一个命令列表对应执行一系列程序,比如要:查积分 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
提交
取消