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 _()
Я не вижу, какую пользу это принесет кроме умиротворения вашего любопытства, хотя :-)