我参与了一个开源项目,在那里,我查询最近更新的对象,所以我有一个接受max_age对象的函数。审核我的代码的人稍微倾向于在几秒钟内传递时间。虽然这不是一个大问题,但我认为这对我来说是一个学习机会。这是我们的对话。对于某些上下文,我们开始讨论参数的名称。
代码审核员:
max_age很好我觉得,我误读了。我认为max_age_timedelta是 也好(更明确)。更多地考虑它,是否有好处 不使用秒的原因?如同,传入一个整数?在那儿 显着的速度问题?
我:
不,只是易用性问题
代码审核员:
我温和地赞成在尽可能简单的函数之间传递对象。
我:
我根据日期查询,timedeltas使日期数学更容易。
代码审核员:
在内部创建timedelta是非常棘手的,输入的秒数是多少? 或者你在很多地方使用timedelta,每次都这样做会很乏味吗? (nb:'内部'表示'执行查询功能的内部')
我:
它并不那么难,我当然可以在内部构建一个timedelta。 但是timedelta对象带有一段时间的语义。 整数和其他基本数据类型通过参数和变量名来获取它们的语义。
代码审核员:
是的,我明白了。但是,在Python中,东西是无类型的,所以我们所拥有的主要信号方法是变量名。 即通过查看代码来判断对象的类型并不容易,就像在C ++中一样。
在这种情况下你会做什么?
答案 0 :(得分:2)
本质上,如果使用int的代码中没有先例,我发现使用timedelta没有问题。