首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中,加号在变量前面的作用是什么?

在Python中,加号在变量前面的作用是什么?
EN

Stack Overflow用户
提问于 2012-05-25 11:38:50
回答 2查看 6.1K关注 0票数 16

我必须维护项目中的以下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 it一元加运算符,它“产生不变的数值参数”。那么它能被安全地移除吗?

(顺便说一句,代码是我不久前写的,希望我已经学到了这一课-如果测试存在,或者如果在注释中澄清了一元加小数的用法,这将不是问题。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-25 11:46:59

加号做什么取决于表达式的结果定义它做什么(该对象的__pos__()方法被调用)。在本例中,它是一个Decimal对象,一元加号等同于调用plus()方法。基本上,它用于应用当前上下文(精度、舍入等)。而不改变数字的符号。在其他地方查找setcontext()localcontext()调用以了解上下文是什么。有关更多信息,请访问see here

一元加号并不经常使用,所以这种用法不熟悉也就不足为奇了。我认为decimal模块是唯一使用它的标准模块。

票数 18
EN

Stack Overflow用户

发布于 2016-11-18 03:41:58

当我错误地认为Python必须支持C增量(++)运算符时,我遇到了同样的问题;事实并非如此!相反,它应用加号运算符(+)两次!我很快就明白了,这两次什么也做不了。然而,因为"++n“看起来有效...未标记为语法错误...我为自己创造了一个可怕的bug。

所以除非你重新定义它的作用,否则一元+实际上什么也不做。一元-从正到负的变化,反之亦然,这就是为什么"--n“也不会被标记为语法错误,但它也不做任何事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10748185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档