2017-10-18 3 views
1

Mon code Matlab va comme cecià Python Matlab: Comment remplacer la fonctionnalité 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; 

code Python Mon doit reproduire ce qui précède et je tort essayé.

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

Comment reproduire la fonctionnalité ci-dessus?

Répondre

2

Les arguments de mots-clés sont uniquement évalués au moment où la fonction est définie. Vous devez utiliser une marque et la cocher pour effectuer le calcul supplémentaire:

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