2016-05-12 10 views
0

私はコマンドが同じように、機能に格納されているPythonの3のターミナルエミュレータを作っています:端末は、このように動作します設定されている以下の引数(Pythonの3)で関数を呼び出す方法

def rd(os_vartmp, os_vartmp2): 
    if os_vartmp == None: 
     print('rd [path] [-S]') 
     print('Delete a folder') 
    else: 
     if os.path.isfile(os_vartmp) == True: 
      if os_vartmp2 == '-S': print('a') 
      else: 
       print(ERR5) 

a = input('Command: ') 

  1. は、ユーザに入力を要求します
  2. スプリット入力
  3. は地元で関数を検索するために入力の最初の部分を使用し
  4. 1がある場合は、引数
  5. は、私は「RD」関数を呼び出すときに、ここのものは「RD「boot.py、例えば、ある

関数を呼び出して、入力の残りの部分を使用しています"-S"それはうまく動作します。しかし、私はこのように呼び出す必要がある場合:rd "boot.py"、それは私に2つが必要なときに与えられた約1引数のエラーをスローします。そのための修正はありますか?

+0

この関数は[def rd(os_vartmp、* args)]で任意の数のパラメータを受け入れるようにします(http://stackoverflow.com/questions/36901/what-does-double-star-and-star- do-for-python-parameters) – TessellatingHeckler

答えて

0

これを試しましたか?

def rd(os_vartmp, os_vartmp2="-S"): 

の代わりに(ヌル "boot.py"、)RDを必要とするnull値を、取得しようと、あなたはデフォルト値をSERができ、その後、あなたはRD( "boot.py")を行うことができます。

希望します。

+0

しかし時々私は '-S'を必要としません – HackerGamerLV

+0

デフォルト値として置くことができる別のものがありますか?おそらくdef rd(os_vartmp、os_vartmp2 = ""):考えられるかどうかわからない場合 – mhyst

+0

はい、試しましたが、os_vartmp2値を変更できません。私が '-S'で呼び出すと、os_vartmp2を ""と設定します。 – HackerGamerLV

1

引数をオプションにするには、メソッド定義に値を代入します。例えば:私はAdd(y=10)を行うことができますが、入力値を一つだけならば、私はyの値を与えたいと思った場合は

def Add(x=0, y=0): 
    return x+y 

、yは0にデフォルト設定されますが、x、それのデフォルト値にフォールバックしています。私はこれが助けて欲しい!

+0

os_vartmp2の値を変更できないようです – HackerGamerLV

関連する問題