2017-02-18 22 views
2

関数のデフォルト値として入力を使用できますか?例えば関数のデフォルト値として入力

f(x=input('>')): 
    print(x) 

問題は、それが私の入力私はx値を供給しても値になり、です。どのように私はこれを正しく行うでしょうか?

答えて

4

Pythonはあなたが機能するために定義され、デフォルトの引数を評価します、あなたは定義時にプロンプ​​トを取得しますいずれか、あなたはそれを好きかどうか。入力プロンプトで入力された値は、xのデフォルトとして割り当てられます。あなたが他の意味のある値が提供されていない場合inputを使用するデフォルト値を使用する場合は

は、Noneを含む一般的なイディオムを使用して、代わりに、関数の本体にinputをドロップ:

def f(x=None): 
    if x is None: 
     x = input('> ') 
    print(x) 

を今、場合あなたは、あなたがすべての呼び出しを使用して機能を再作成する関数を作成する必要があります、私はまだ何とかデフォルト引数でこれをやりたい、考えている:

def f(): 
    def _(x = input('> ')): 
     print(x) 
    return _() 

私はこれを利益に何が表示されませんもたらすだろうしかしあなたの好奇心を和らげる以外に:-)

1

これはあなたがしたいことかもしれません。

def f(x=None): 
    if not x: 
    x = input('>') 
    print(x) 
関連する問題