是否可以将输入作为函数的默认值?
例如,
f(x=input('>')):
print(x)
问题是,即使我提供x
值,也会输入一个值。我该如何正确地做到这一点?
答案 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)