输入作为函数的默认值

时间:2017-02-18 13:27:59

标签: python function python-3.x default-value

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

例如,

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

问题是,即使我提供x值,也会输入一个值。我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分: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 :(得分:1)

可能这就是你想要的。

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