作为函数的默认值输入

Input as a default value for a function

是否可以将输入作为函数的默认值?

例如,

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

问题是,即使我提供 x 值,它也会让我输入一个值。我该如何正确执行此操作?

也许这就是你想要的。

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

Python 将 评估 您为函数定义的默认参数,无论您喜欢与否,您都会在定义过程中得到提示。然后将在输入提示中输入的值指定为 x 的默认值。

如果您想要一个在没有提供其他有意义的值时将使用 input 的默认值,请使用涉及 None 的常用习惯用法并在函数主体中删除 input ,而是:

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

现在,如果你在想,我仍然想以某种方式使用默认参数来做到这一点,那么你需要创建一个函数,re-creates 每次调用你的函数:

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

除了满足您的好奇心,我看不出这会带来什么好处:-)