這張圖比較全面的顯示了python和c變數定義時的區別:
c/c++:變數對應記憶體中的一塊區域,當修改這個值時,直接修改記憶體區域中的值。
python:變數只是對一塊存放指定值的記憶體區域的引用,賦值時是讓該變數引用另一塊存放新值的記憶體區域。因此在賦值時等號左邊的變數類似於標籤,等號右邊的是值對應的位址。
例如下python程式:
t =[0
] #定義乙個只有0值的列表
a = t #將列表賦值給變數a
print(id
(t)) #id =
2416187272968
print(id
(a)) #id =
2416187272968t=[
5] #修改t的值
print(id
(t)) #id =
2052857374152
print
(a) #列印a的值發現,a=[0
]沒有改變。
t =[0
] #定義乙個只有0值的列表
a = t #將列表賦值給變數a
print(id
(t)) #id =
2416187272968
print(id
(a)) #id =
2416187272968t[0
]=5 #修改t的值 和上面不同,這樣不會導致變數所指的位址發生變化。
print(id
(t)) #id =
2416187272968
print
(a) #列印a的值發現,a=[5
]。可見修改t的值導致了a的值的變化。
這個小例子就是由於python特有的變數機制導致的,在賦值時會改變變數的所指位址。程式設計的時候應該注意,避免採坑。 C 中變數和類的定義
一 變數的宣告和定義 在c 語言中,變數只能定義一次,在使用變數之前必須定義或宣告變數。1 變數的定義用於為變數分配儲存空間 還可為變數指定初始值。2 宣告用於向程式表明變數的型別和名字 定義也是宣告 當定義變數時我們宣告了它的型別和名字。可以通過使用extern關鍵字宣告變數而不定義它。exter...
C中變數的宣告和定義
變數定義就是告訴編譯器在何處建立變數的儲存,以及如何建立變數的儲存。變數定義指定乙個資料型別,幷包含了該型別的乙個或多個變數的列表。變數宣告向編譯器保證變數以指定的型別和名稱存在,這樣編譯器在不需要知道變數完整細節的情況下也能繼續進一步的編譯。變數宣告只在編譯時有它的意義,在程式連線時編譯器需要實際...
Python 中私有變數的定義和用法
大多數 python 都遵循這樣乙個約定 帶有乙個下劃線的名稱 例如 spam 應該被當作是 api 的非公有部分 無論它是函式 方法或是資料成員 為了保證對於類私有成員的有效使用 例如避免名稱與派生類所定義的名稱相衝突 設立了名稱改寫 name mangling 機制。任何形式為 spam 的識別...