什么模式最适合在python中执行不同的操作(取决于用户输入)

时间:2015-02-14 17:13:14

标签: python design-patterns

我想在 python 中编写一个程序,用户可以决定在运行时运行什么操作,但我也想让我的程序设计得好以便能够添加操作轻松。 让我们说用户输入“3 4 add” 然后输出将是7 如果他写“3 4 mul” 那么输出就是12。

请注意,我不是在寻找传统的“if,elif,elif”等, 因为我想制作一个允许其他程序员轻松添加操作的设计。

我应该使用什么模式,以及有关如何实施它的任何提示/指南?

编辑:只是为了确保我已经解释过自己,其他程序员无法访问主程序的代码,但是他们应该仍然能够为程序添加不同的操作

感谢。

1 个答案:

答案 0 :(得分:1)

import operator

# custom function 

def diff_squares(a, b):
    return a ** 2 - b ** 2

operators = {'add' : operator.add,
             'sub' : operator.sub,
             'mul' : operator.mul,
             'div' : operator.div,
             'dos' : diff_squares}

data = raw_input('Question: ')
data = data.split()

a = int(data[0]) # one number
b = int(data[1]) # two number

answer = operators[data[2]](a, b)
print 'Solution:', answer