【发布时间】:2012-05-25 03:38:49
【问题描述】:
在我必须维护的项目中有以下 Python 代码:
# If the `factor` decimal is given, compute new price and a delta
factor = +factor.quantize(TWOPLACES)
new_price = +Decimal(old_price * factor).quantize(TWOPLACES)
delta = new_price - old_price
这里的问题是+在变量前面的用途。
Python 文档call 它一元加运算符,“其数值参数不变”。那么它可以安全移除吗?
(顺便说一句,代码是我前段时间编写的,希望我已经吸取了教训——如果存在测试,或者如果在 cmets 中澄清了对小数使用一元加号,这将不是问题。 )
【问题讨论】:
-
删除后会发生什么?
-
没有什么是显而易见的,但由于它涉及敏感的数字信息(产品定价),因此最好确定一下。唉,缺少相关的测试。
-
我确信这样做是有目的的。我不知道答案,但我很好奇是否有直接的、明显的差异。
-
@CoreyOgburn,说得好。可以通过尝试来回答的问题相对经常出现在这里。在这种情况下,价格处理的适当测试也将消除不确定性。 (不过,我想我会把它留作参考。官方文档说一元加号保持参数不变,但小数并非如此。)
标签: python decimal unary-operator