哪种模式最适合在 python 中执行不同的操作(取决于用户输入)
What pattern is best suited for executing different actions (depending on user input) in python
我想在 python 中编写一个程序,用户将能够决定 运行 在 运行 时执行什么操作,而且我还想让我的程序设计得很好,以便能够轻松地添加操作。
假设用户输入“3 4 add”
那么输出将是 7
如果他写“3 4 mul”
那么输出将是 12.
请注意,我不是在寻找传统的 "if, elif, elif" 等,
因为我想做一个设计,让其他程序员可以方便地添加操作。
我应该使用什么模式,以及tips/guide如何实现它?
编辑: 只是为了确保我已经解释过了,其他程序员将无法访问主程序的代码,但他们应该仍然可以添加对程序的不同操作。
谢谢。
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
我想在 python 中编写一个程序,用户将能够决定 运行 在 运行 时执行什么操作,而且我还想让我的程序设计得很好,以便能够轻松地添加操作。 假设用户输入“3 4 add” 那么输出将是 7 如果他写“3 4 mul” 那么输出将是 12.
请注意,我不是在寻找传统的 "if, elif, elif" 等, 因为我想做一个设计,让其他程序员可以方便地添加操作。
我应该使用什么模式,以及tips/guide如何实现它?
编辑: 只是为了确保我已经解释过了,其他程序员将无法访问主程序的代码,但他们应该仍然可以添加对程序的不同操作。
谢谢。
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