2017-11-08 11 views
0

で空の引数は、私は2つの引数を取り、私のスクリプトで関数を持っていると、ファイルに結果を保存しますPythonの - 機能

def listing(val, ftype): 

    with open(sys.argv[3], "a+") as myfile: 
     myfile.write(val + ftype + '\n') 
    return 

を私は一つだけの引数が与えられたときに、それを使用したいです。それは空の引数に対処する唯一の方法

listing('', '\n[*]Document files found:\n') 

です:私はそのような空の文字列''として引数を定義することができますか?

+0

引数がオプションの場合は、関数の宣言はそう言う必要があります: 'デフリスト(FTYPE、ヴァル=なし)'。どのように関数が内部的に値を扱うかは、あなた次第です。 – deceze

+0

あなたの関数内の 'sys.argv [3]'を使ってください。 –

答えて

2

あなたは、この目的のためにデフォルト引数を使用することができ

使用して、デフォルトの引数

def listing(val, ftype=''): 

    with open(sys.argv[3], "a+") as myfile: 
     myfile.write(val + ftype + '\n') 
    return 

呼び出し:listing('\n[*]Document files found:\n') # need not give second argument

ます。また、可変数を取ることによって、このより一般的な機能作ることができます引数

通話

def listing(*args): 
    with open(sys.argv[3], "a+") as myfile: 
      myfile.write("".join(args) + '\n') 
    return 
listing('String1','String2','String3')

+2

'myfile.write("。 "(join)(args)+ '\ n')'は恐ろしいループよりも良いでしょう –

+0

ええ、本当です。私はその部分を更新します。おかげで –

+0

ありがとう、ジェネリックvesionは私が2つ以上の引数でもこの関数を再利用しようとしていることに気付きました。 – imperato