2017-02-18 5 views
2

함수의 기본값으로 입력 할 수 있습니까? I는 x 값을 제공 할 때 예를 들어함수의 기본값으로 입력

문제가

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

는 심지어 저 입력 값을 만든다. 어떻게하면 제대로 할 수 있습니까?

답변

4

파이썬은 당신이 함수에 대해 정의 기본 인자를 평가합니다, 당신은 정의시 프롬프트를 얻을 수 있습니다 중 하나를 당신이 그것을 좋아하거나하지. 그러면 입력 프롬프트에 입력 된 값이 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)