【发布时间】:2017-07-08 00:47:00
【问题描述】:
是否可以将输入作为函数的默认值?
例如,
f(x=input('>')):
print(x)
问题是,即使我提供x 值,它也会让我输入一个值。我该如何正确地做到这一点?
【问题讨论】:
标签: python function python-3.x default-value
是否可以将输入作为函数的默认值?
例如,
f(x=input('>')):
print(x)
问题是,即使我提供x 值,它也会让我输入一个值。我该如何正确地做到这一点?
【问题讨论】:
标签: python function python-3.x default-value
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 _()
不过,除了满足您的好奇心之外,我看不出这会带来什么好处 :-)
【讨论】:
也许这就是你想要的。
def f(x=None):
if not x:
x = input('>')
print(x)
【讨论】: