2016-12-28 30 views
3

我想知道是否有一種簡單的方法來編寫函數,當給出不同的數據時執行不同的操作。
例如,下面的函數將給剩餘對於f =毫安簡單的代碼功能,可以通過不同的給定輸入執行不同的步驟

def f_m_a(f,m,a): 
    if f is None: 
     return m*a 
    if m is None: 
     return f/a 
    if a is None: 
     return f/m 

製作單獨的情況下,像上述久方程式需要時間和代碼複雜未知的值。
有沒有辦法更有效地編寫代碼而無需編寫單獨的案例?

回答

0

通常沒有辦法做簡化。

唯一的「優化」可以在這裏做的是

def f_m_a(f,m,a): 
    if f is None: 
     return m*a 
    return f/(m or a) 

但可讀性非常糟糕。這裏是'm'的零值問題...