Python中為什么沒有++和–(自增/減)(轉)


原文地址:http://blog.csdn.net/guang09080908/article/details/47273775(侵刪)

  • 這兩天看了一些網上各大互聯網公司的面試題,發現騰訊特別喜歡考察++和–以及移位運算相關的內容。C++相對來說還是比較熟悉的,對於這類問題只要記住運算符的優先級一般問題不大。由於也會經常用Python,突然覺得Python中為什么沒有自增自減運算符呢?
  • 比如python中有x += y這種形式的表達式,但是沒有x++這樣的。查了一些資料,發現+=是代表改變了變量,相當於重新生成了一個變量,把操作后的結果賦予這個新生成的變量。但是++的話代表改變了對象本身,注意是對象本省,而不是變量本身。這個對象指的是內存中存放基本類型的數據的地址所指的內容。而Python的模型規定,數值對象是不可改變的。
  • 比如下面這個例子:
>>> b = 5
>>> a = 5
>>> id(a)
162334512
>>> id(b)
162334512
>>> a is b
True
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • int理論上是每次賦值都創建一個新對象的。但是由於使用頻繁,為了提升性能避免浪費,所有python有個 整數池,默認1~256的數字都屬於這個整數池,這些每次賦值的時候,是取得池中的整數對象。但是其他的除外,如下所示:
>>> a = 257
>>> b = 257
>>> id(a)
140397570652784
>>> id(b)
140397570652736

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM