【问题标题】:Input as a default value for a function输入作为函数的默认值
【发布时间】:2017-07-08 00:47:00
【问题描述】:

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

例如,

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

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

【问题讨论】:

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


    【解决方案1】:

    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 _()
    

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

    【讨论】:

      【解决方案2】:

      也许这就是你想要的。

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

      【讨论】:

        猜你喜欢
        • 2019-09-11
        • 2010-10-03
        • 2019-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        相关资源
        最近更新 更多