python-3.x - 向函数添加可选参数

标签 python-3.x type-hinting optional-parameters

我正在从事一个项目,我应该在其中向现有代码库添加新功能。作为其中的一部分,我需要向其中一个函数添加一个可选参数,但仅添加可选参数会导致我的一些单元测试失败。

该函数最初看起来如下所示:

def function(
    data1: list,
    data2: list,
    opt1: Optional[list],
)

添加另一个可选参数后,它看起来像这样:

def function(
    data1: list,
    data2: list,
    opt1: Optional[list],
    new: Optional[dict],
)

我在代码库中所做的唯一更改是添加这个可选参数,它导致我的一些单元测试失败。我想知道是否有人知道可能是什么原因?

最佳答案

Optional[list] 表示参数可以是 listNone。您仍然需要从调用者那里传递它。

如果你想要一个可以省略的参数,你应该使用默认值,例如:

def function(
    data1: list,
    data2: list,
    opt1: Optional[list] = None,
)

假设 None 表示函数逻辑中省略了参数。

关于python-3.x - 向函数添加可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69095606/

相关文章:

python-3.x - Boto3:使用 boto3.resource ('s3' )列出所有 S3 存储桶

python - sys.modules 有任何特定的顺序吗?

python - 无法使 find.all(string ='television' ) 与 BeautifulSoup (Python 3.x) 一起使用

Python .extend 不必要地拆分字符

Python:argparse.Namespace 对象的类型提示

c# - 如何在 C# 中将参数默认为 Guid.Empty?

c++ - 已填充 QSet 作为可选参数

python - 如何键入具有封闭类类型的提示方法?

php - 如何防止 PhpStorm 在使用 PHPUnit 模拟时显示预期...警告?

java - Java中重载方法时,在哪里计算额外的参数数据?