Python - 如何根据参数

时间:2017-06-28 12:04:12

标签: python

我是Python脚本的新手。我希望在我的代码编写方面有点专业。基本上,我有一个功能上的脚本,我想添加新的功能。

我的代码看起来有点像:

const declaration
CONST1 = ....
CONST2 = ....
CONST3 = ....
CONST4 = ....
CONST5 = ....
CONST6 = ....
CONST7 = ....


function declaration
def f1:
    ....

def f2:
    ....
def f3:
    ....
def f5:
    ....
def f7:
    ....
def f8:
    ....
def f0:
    ....

first part 
logic
logic
logic
logic
logic
logic
logic
    logic


second part 
.......
.......

我想在此处添加新功能,以便当脚本以某些参数运行时,第一部分或第二部分依赖于参数运行。

我知道我可以使用if ... else来做这件事,但想知道是否有更专业的方法来做到这一点。这样代码就更易于维护并且易于添加。你能给我一些建议吗?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您应该使用dictionary

例如:

CONST1 = 'CONST1'
CONST2 = 'CONST2'

def f1():
    return 'Hello from f1 function'

def f2():
    return "Hello from f2 function"

my_data = {
    'CONST1': f1,
    'CONST2': f2,
}

def run(key):
    # If there is no key, just return message
    # Or use try/catch
    if key not in my_data.keys():
        return 'Oops, I can\'t find the key'

    # Here we get a value via key, and call function via parentheses
    return my_data[key]()

print(run('CONST1'))

答案 1 :(得分:0)

您可以使用Python Dictionary的get方法。

def f(x):
    return {
        'a': 1,
        'b': 2,
    }.get(x, 9)    # 9 is default if x not found

options = {
    0 : First,
    1 : Second,
}
options[num]()