在 python 中实现默认参数功能的用户输入

Achieve the user input for default parameter functionality in python

是我编写的 C++ 代码,用于在未明确提供参数时默认为用户输入。 过去一周我一直在学习 Python-3.7 并正在尝试实现类似的功能。

这是我试过的代码:

def foo(number = int(input())):
    print(number)

foo(2)  #defaults to user input but prints the passed parameter and ignores the input
foo()   #defaults to user input and prints user input

此代码有效,但不尽如人意。你看,当我将参数传递给 foo() 时,它会打印该参数,而当我不传递任何参数时,它会打印用户输入。问题是,即使传递了一个参数,它也会要求用户输入,比如 foo(2),然后忽略用户输入。我如何更改它以按预期工作(因为在传递参数时它不应该要求用户输入)

int(input())函数定义 时执行。你应该做的是使用默认值,如 None,然后在需要时执行 number = int(input())

def foo(number=None):
    if number is None:
         number = int(input())
    print(number)