gpt4 book ai didi

python - 如何使用动态类型进行保护

转载 作者:行者123 更新时间:2023-12-01 05:56:34 25 4
gpt4 key购买 nike

我们的项目变得越来越大,有一天,当我尝试向函数添加简单的错误消息时,我遇到了这个问题:

def create_report(id):
report = new_report(id)
if not report:
raise api_error('Could not find report with id %d' % (id,))
...

问题? id 是一个字符串,当它尝试将其格式化为数字时,它崩溃了。我不是该函数的原始作者,并且错误地认为 id 是一个数字。相反,它应该是一个字符串。哎呀。

如果这是一种强类型语言,我会立即从编译器中得到一个错误;处理此类事情的最佳方法是什么?我应该检查每个参数的类型(看起来像是很多跑腿的工作),还是应该将所有内容放入 try: block 中?也许我们应该在每个函数中写一条注释来描述它的参数?或者我只是应该更了解?

最佳答案

该格式字符串应该使用 %s,不是因为 id 是一个字符串,而是因为它通常是最佳选择。 %d 需要数字类型,但如果需要,%s 会将其他类型转换为字符串。仅当需要更改数字格式时才应使用 %d

关于python - 如何使用动态类型进行保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com