如何在使用解包时意识到返回中的代码更改



最近,当一位同事更改函数返回的签名时,我遇到了一个问题,我们的客户端以这种方式调用函数:

example = function()

但当我依赖他的改变时,他无意中改成了这个:

example, other_stuff = function()

我没有意识到这一变化,我进行了合并,一切似乎都很好,但后来错误发生了,因为我期望一个值,但现在它正试图打开两个

所以我的问题是,知道python不是一种类型化语言,有没有办法知道这种情况的发生并防止这种行为(一种工具或其他东西(,因为遗憾的是,直到出现运行时错误时,我才注意到这一点,或者我们需要如何处理这种

听起来像是进程错误。API不应该在不考虑用户的情况下更改其签名。在一个项目中,搜索很简单。从外部来看,API版本号应该被打乱,并且更改应该在更改说明中。

API应该有单元测试,其中包括返回值测试"他无意中改变了";所有问题都应该在那里解决。既然没有发生这种情况,就应该针对测试编写一份错误报告。

当然,这位同事可以更改这些测试。但所有这些都应该在源代码存储库中的代码审查更改集中。同事应该证明改变的合理性以及如何减轻破损。由于此API似乎有外部客户端,因此很难获得API签名更改,因为需要通知所有客户端。

最新更新