2010-12-10 16 views
1

関数に余分な引数を渡したい場合、それらが存在している場合にはそれに応じて動作します(関数から何かを出力する)。もしそれらのフラグが存在しなければ関数を実行するだけです通常、余分な情報を印刷しないで、私はこれにどのようにアプローチしますか?関数内のオプションのフラグ

乾杯

答えて

7

のはxyzを言ってみましょう必要argrumentsあるとoptはオプションです:

def f(x, y, z, opt=None): 
    # do required stuff 
    if opt is not None: 
    # do optional stuff 

これは、3つのまたは4つの引数のいずれかで呼び出すことができます。あなたはその考えを得る。

0
def fextrao(x, y, a=3): 
    print "Got a", a 
    #do stuff 

def fextrad(x, y, **args): 
    # args is a dict here 
    if args.has_key('a'): 
    print "got a" 
    # do stuff here 

def fextrat(x, y, *args): 
    # args is a tuple here 
    if len(args) == 1: 
    print "Got tuple", args[0] 
    #do stuff 

fextrao(1, 2) 
fextrao(1, 2, 4) 
fextrad(1, 2, a=3, b=4) 
fextrat(1, 2, 3, 4) 
0

デフォルトの値は、オプションの引数と同様に、関数の引数に設定できます。このような何か:

def myFunction(required, optionalFlag=True): 
    if optionalFlag: 
     # do default 
    else: 
     # do something with optionalFlag 
1

ます。また、キーワード引数を使用することができます。

def f(x, y, **kwargs): 
    if 'debug_output' in kwargs: 
     print 'Debug output' 

次に、あなたが好きなだけを持つことができます。..

f(1,2, debug_output=True, file_output=True) 
関連する問題