為什麼Python中沒有"a++"這種寫法
一開始學習 Python 的時候習慣性的使用 C 中的a++
這種寫法,發現會報SyntaxError: invalid syntax
錯誤,為什麼 Python 沒有自增運算子的這種寫法呢?
我們可以看一下 Python 下:
>>>a = 2 >>>b = 2 >>>id(a)#id() 函式用於獲取物件的記憶體地址。 140732976575344 >>>id(b) 140732976575344 >>>
再來看看 C 語言中:
#include<stdio.h> int main() { int a = 1; int b = 1; printf("%d\n",&a); printf("%d\n",&b); return 0; }
輸出:
這裡可以看出 Python 在變數的儲存上與 C 語言的不同,在 C 語言中,值的儲存以變數名來區分,一個變數具有單獨的地址空間;而 Python 中則不一樣,只要值是相同的,不管你的變數名是什麼,它們的地址都是相同的,也就是說, Python 允許一個值被多個變數名稱繫結。
這裡說明一下,在指令碼式程式設計環境中是這樣,但是在互動式程式設計環境下,Python 為了優化速度,使用了小整數物件池, 避免為整數頻繁申請和銷燬記憶體空間,編譯器會有一個小整數池的概念,小整數的定義是 [-5, 256] 這些整數物件是提前建立好的,不會被垃圾回收,也就是說,變數在這個範圍內是會按照前面所說的,共用記憶體地址,超過這個值則使用單獨的記憶體地址。 如:
>>>a=1000 >>>b=1000 >>>id(a);id(b) 266662366224 266617350384 >>>
參考資料:ofollow,noindex" target="_blank">@wangyunfeis