【问题标题】:Python "++" operator doesn't work [duplicate]Python“++”运算符不起作用[重复]
【发布时间】:2011-04-25 14:25:32
【问题描述】:

可能重复:
Python: Behaviour of increment and decrement operators

你好,我试过了。

++num

而且num完全没有变化,初始化时总是显示值

如果我将++num 更改为num+=1,那么它可以工作。

那么,我的问题是 ++ 运算符是如何工作的?

【问题讨论】:

  • 我认为没有必要对这个问题投反对票。这是重复的,适当的操作是关闭而不是投票。
  • 不起作用?是什么让你甚至认为它存在?你在读什么教程?你在哪里看到的?
  • @S.Lott:你可以开始研究 Python 并认为它就在那里,因为其他几种语言也是如此。如果你只是写一些函数并尝试使用++x 作为增量,它不会抛出任何错误,只是被默默地破坏。
  • @Nick T:“stabbing at Python”和“think”不属于同一个句子。这是一个非常非常糟糕的问题。它对任何试图通过“刺杀”来学习语言的人说坏话。确实,一想到人们真的会做这样的事情,我就感到非常悲痛。阅读具有一切优势。而且比刺杀要快。而且这种极其糟糕的假设的机会更少。

标签: python operator-keyword


【解决方案1】:

答案:Python 中没有++ 运算符。 += 1 是递增数字的正确方法,但请注意,由于整数和浮点数在 Python 中是不可变的,

>>> a = 2
>>> b = a
>>> a += 2
>>> b
2
>>> a
4

这种行为不同于可变对象的行为,其中b在操作后也会改变:

>>> a = [1]
>>> b = a
>>> a += [2]
>>> b
[1, 2]
>>> a
[1, 2]

【讨论】:

  • 我看不出您所展示的 += 行为与任何其他使用 += 运算符将 x += c 转换为 x = x + c 的语言有何不同创建一个新实例而不是变异。
  • +1 比扳机手指更快的人提供更多信息
  • @Davy8: += 是否创建一个新对象,如果它是可变的——只有当它不是时。
  • 有趣...所以在 Python 中 x += y 不会转换为 x = x + y。这对我来说似乎违反直觉,但我还没有被它咬过。
  • 实际上,x += y可以翻译成x = x + y,如果x是一个__add__重载但不是__iadd__的对象。
【解决方案2】:

python 中没有 ++ 运算符。您将一元 + 两次应用于变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2018-03-24
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多