python - 函数参数最佳实践:dict vs kwargs
问题描述
我有一个 Python 最佳实践问题,我无法在网上找到一个好的答案(可能是由于谷歌搜索技能不足)。在定义一个采用可变数量的键值对的函数时,我可以定义一个采用 a 的参数dict
,例如:
def func(dict_param):
for key, value in dict_param.items():
# do stuff
或允许函数采用**kwargs
:
def func(**kwargs):
for key, value in kwargs.items():
# do stuff
我的问题是:是否有任何理由使用dict
over**kwargs
反之亦然?这取决于吗?各有什么注意事项?这里有哪些最佳实践?
解决方案
使用时,如果参数未作为实参传递def func(dict_param)
,此函数将出错。dict_param
但是,当def func(**kwargs)
使用时,字典参数是可选的,并且函数可以在不传递参数的情况下运行(除非有其他参数)
但正如 norok2 所说,
显式优于隐式。
因此,您应该始终设计您的函数来尽量避免这些模棱两可的参数,以避免任何潜在的类型错误。
希望这可以帮助 :)
推荐阅读
- google-cloud-firestore - 由于异步功能而更新我的 ListView 时出现问题
- c++ - 减少二分搜索中的搜索空间
- python - 将单个 png 文件转换为 mp4
- java - 如何在 tabitem 中添加滚动条?
- javascript - 有没有办法创建一个元素,当另一个元素悬停在光标上并跟随光标时出现?
- lua - 如何编辑文本框的文本值?(机器人)
- python - 如何让机器人解释作为命令中的参数发送的某个字符串并发送该字符串的转换版本的输出?
- python - 使用 GA api 过滤多个 URL
- python - stem.SocketError: [Errno 111] 连接被拒绝
- azure - 按迭代路径选择数据库 Azure DevOps 上的测试用例 ID 和最后结果结果