Python不支持C风格的++a增量,但令我惊讶的是,它并没有抱怨导致我暂时感到困惑,为什么我的循环不起作用.
尝试一些事情(首先初始化a=0)我发现a++并a--产生语法错误,但++a没有.虽然--a在Python 3.3中产生语法错误,但在Python 2.7中没有.
这是怎么回事?为什么不++a给出错误?为什么--a不在2.7中给出错误但在3.3中给出错误?
Gam*_*iac 16
看一下这个控制台会话:
>>> a = 10
>>> ++a
10
>>> +a
10
>>> -a
-10
>>> --a
10
Run Code Online (Sandbox Code Playgroud)
基本上++a == +(+(a)),和--a == -(-(a)).这是一个击中概念家(和乐趣):
>>> ++++++++++a
10
Run Code Online (Sandbox Code Playgroud)
以下代码示例除了向您展示python有多么有趣之外没有任何意义:
>>> +-+-+a
10
Run Code Online (Sandbox Code Playgroud)
有了这样的东西,你可以制作运行的 ASCII艺术品.
如果你想增加,你可以这样做:a += 1.而--a在工作Python 2和3.
val*_*val 12
简短回答:它调用__pos__方法两次.考虑例如:
>>> class A(object):
... def __init__(self, x):
... self.x = x
... def __pos__(self):
... return A(2 * self.x)
... def __repr__(self):
... return 'A(%s)' % self.x
...
>>> a = A(1)
>>> a
A(1)
>>> +a
A(2)
>>> ++a
A(4)
>>> +++a
A(8)
Run Code Online (Sandbox Code Playgroud)
对于整数,作为+x回报x,它基本上什么也没做.
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |