2017-02-18 16 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^