接受多个参数和接受单个对象的区别

问题描述 投票:0回答:1

我编写了一个处理 API 的库,并且正在考虑两个接口选项:

1. api_client.init_ payment(order_id=..., 价格=..., ...)

2. api_client.init_ payment(InitPaymentRequest(order_id=..., 价格=..., ...))

一般来说,我认为它们之间没有太大区别。我只喜欢 [1],因为它更简约且易于使用。但无论如何我都必须在内部创建

InitPaymentRequest
对象,所以我只是想也许 [2] 也有意义......但它合理吗?

哪种选择通常更好?

python-3.x oop architecture
1个回答
0
投票

两个选项都有效。然而,就干净的代码而言 - 函数的输入参数过多被视为“难闻的气味”。 Robert C. Martin 甚至在他的《Clean Code》一书中为此专门开辟了一个章节,并建议当您开始向函数添加越来越多的输入参数时,您应该考虑将它们包装在一个类中。我发现这篇文章是对本书部分的很好的总结。

© www.soinside.com 2019 - 2024. All rights reserved.