2017-10-18 60 views
1

我的MATLAB代碼是這樣MATLAB到Python:如何更換nargin功能

function d = myFun1(a,b,c) 
    if nargin<3 
    c = myFun2(a,b) 
    end 
    d = a+b+c; 
function c = myFun2(a,b) 
    c = a*b; 

我的Python代碼必須複製上述,我錯誤地嘗試。

def myFun1(a,b, c=myFun2(a,b)): 
    d = a+b+c; 
    return d; 
def myFun2(a,b): 
    c = a*b; 
    return c; 

如何複製上述功能?

回答

2

關鍵字參數只在當時被評估,函數被定義。你必須使用一個標記,並檢查它,做額外的計算:

def myFun1(a, b, c=None): 
    if c is None: 
     c = myFun2(a, b) 
    d = a + b + c 
    return d