Python中爲什麼沒有++和--(自增/減)

  • 這兩天看了一些網上各大互聯網公司的面試題,發現騰訊特別喜歡考察++和–以及移位運算相關的內容。C++相對來說還是比較熟悉的,對於這類問題只要記住運算符的優先級一般問題不大。由於也會經常用Python,突然覺得Python中爲什麼沒有自增自減運算符呢?

  • 比如python中有x += y這種形式的表達式,但是沒有x++這樣的。查了一些資料,發現+=是代表改變了變量,相當於重新生成了一個變量,把操作後的結果賦予這個新生成的變量。但是++的話代表改變了對象本身,注意是對象本省,而不是變量本身。這個對象指的是內存中存放基本類型的數據的地址所指的內容。而Python的模型規定,數值對象是不可改變的。

  • 比如下面這個例子:

>>> b = 5
>>> a = 5
>>> id(a)
162334512
>>> id(b)
162334512
>>> a is b
True
  • int理論上是每次賦值都創建一個新對象的。但是由於使用頻繁,爲了提升性能避免浪費,所有python有個 整數池,默認1~256的數字都屬於這個整數池,這些每次賦值的時候,是取得池中的整數對象。但是其他的除外,如下所示:
>>> a = 257
>>> b = 257
>>> id(a)
140397570652784
>>> id(b)
140397570652736
發佈了115 篇原創文章 · 獲贊 29 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章