"return +/- " 在 python 中做什么?
What does "return +/- " do in python?
我在查看 CPython 源代码时从标准库中找到了以下代码 (ast.py
)。
if isinstance(node.op, UAdd):
return + operand
else:
return - operand
我在 python 解释器中尝试了以下内容
>>> def s():
... return + 1
...
>>> s()
1
但这和下面的一样对吗?
def s():
return 1
任何人都可以帮助我理解表达式 return +
或 return -
在 python 中的作用以及我们何时应该使用它吗?
return + operand
等同于 return operand
(如果操作数是数字)。我看到的唯一目的是坚持这样一个事实,即我们不想要 operand
.
的对立面
+
和 -
都可以用作一元或二元运算符。在您的情况下,它们被用作一元运算符。 return + operand
与 return operand
相同。我们习惯以return +operand
或return -operand
.
的形式看到它们
本文中的加号和减号是 unary operators。也就是说,它们接受 单个操作数 。这与对 两个操作数 进行运算的二元运算符 *
(例如)相比。显然 +1
就是 1
。因此 return 语句中的一元运算符 +
是多余的。
我没有研究过代码,所以我不确定,但是 Python 允许覆盖 unary operator behavior:
__pos__(self)
Implements behavior for unary positive (e.g. +some_object)
__neg__(self)
Implements behavior for negation (e.g. -some_object)
所以 operand
在你的例子中可能是 class 的对象,它覆盖了那些魔术方法。
这意味着 return + operand
不等同于 return operand
。
我在查看 CPython 源代码时从标准库中找到了以下代码 (ast.py
)。
if isinstance(node.op, UAdd):
return + operand
else:
return - operand
我在 python 解释器中尝试了以下内容
>>> def s():
... return + 1
...
>>> s()
1
但这和下面的一样对吗?
def s():
return 1
任何人都可以帮助我理解表达式 return +
或 return -
在 python 中的作用以及我们何时应该使用它吗?
return + operand
等同于 return operand
(如果操作数是数字)。我看到的唯一目的是坚持这样一个事实,即我们不想要 operand
.
+
和 -
都可以用作一元或二元运算符。在您的情况下,它们被用作一元运算符。 return + operand
与 return operand
相同。我们习惯以return +operand
或return -operand
.
本文中的加号和减号是 unary operators。也就是说,它们接受 单个操作数 。这与对 两个操作数 进行运算的二元运算符 *
(例如)相比。显然 +1
就是 1
。因此 return 语句中的一元运算符 +
是多余的。
我没有研究过代码,所以我不确定,但是 Python 允许覆盖 unary operator behavior:
__pos__(self)
Implements behavior for unary positive (e.g. +some_object)
__neg__(self)
Implements behavior for negation (e.g. -some_object)
所以 operand
在你的例子中可能是 class 的对象,它覆盖了那些魔术方法。
这意味着 return + operand
不等同于 return operand
。