python中,變數是物件的引用。變數賦值,即將變數指向值物件,對值物件的引用。
值物件的分類:
不可變物件,通俗的講,就是不可以改變物件的內容。比如:數字,字串,元祖tuple。
變數指向的值物件不可變,但變數的指向可變,即可以改為指向新的值物件。
1. 值物件為數字
**輸出:a =
10b = a
("a addr: 0x%x val: %d"%(
id(a)
, a)
("b addr: 0x%x val: %d"%(
id(b)
, b)
("-"*30
)a =
100print
("a addr: 0x%x val: %d"%(
id(a)
, a)
("b addr: 0x%x val: %d"%(
id(b)
, b)
2. 值物件為字串a addr:
0x7ffb45d47d60 val:
10b addr:
0x7ffb45d47d60 val:10-
----
----
----
----
----
----
----
-a addr:
0x7ffb45d488a0 val:
100b addr:
0x7ffb45d47d60 val:
10
**輸出:a =
"hello"
b = a
("a addr: 0x%x val: %s"%(
id(a)
, a)
("b addr: 0x%x val: %s"%(
id(b)
, b)
("-"*30
)a +=
" python!"
("a addr: 0x%x val: %s"%(
id(a)
, a)
("b addr: 0x%x val: %s"%(
id(b)
, b)
3. 值物件為tuplea addr:
0x1dd1cdb71b0 val: hello
b addr:
0x1dd1cdb71b0 val: hello--
----
----
----
----
----
----
----
a addr:
0x1dd1cfb62b0 val: hello python!
b addr:
0x1dd1cdb71b0 val: hello
**輸出:a =(1
,2)print
("a addr: 0x%x val: %s"%(
id(a)
, a)
("-"*35
)b =(1
,2)print
("b addr: 0x%x val: %s"%(
id(b)
, b)
("-"*35
)a =(3
,4)print
("a addr: 0x%x val: %s"%(
id(a)
, a)
)
值物件內容可變,比如:列表list,字典dict和集合set。a addr:
0x2af983d7988 val:(1
,2)-
----
----
----
----
----
----
----
----
--b addr:
0x2af983d7988 val:(1
,2)-
----
----
----
----
----
----
----
----
--a addr:
0x2af985e7948 val:(3
,4)
修改值物件的內容,所有引用當前值物件的變數,都可見修改。
1. 列表
**輸出:a =[1
,2,3
]b =[1
,2,3
]c = a
("addr a=0x%x b=0x%x c=0x%x"%(
id(a),id
(b),
id(c)))
("-"*30
)c[0]
=4print
(f"a="
(f"b="
(f"c="
)
2. 字典addr a=
0x2b2780d5208 b=
0x2b2780d5408 c=
0x2b2780d5208--
----
----
----
----
----
----
----
a=[4,
2,3]
b=[1,
2,3]
c=[4,
2,3]
**輸出:a =
b =c = a
("addr a=0x%x b=0x%x c=0x%x"%(
id(a),id
(b),
id(c)))
("-"*30
)c["m"]=4
(f"a="
(f"b="
(f"c="
)
3. 集合addr a=
0x20412912b88 b=
0x20412912bd8 c=
0x20412912b88--
----
----
----
----
----
----
----
a=b=
c=
**輸出:a =
b =c = a
("addr a=0x%x b=0x%x c=0x%x"%(
id(a),id
(b),
id(c)))
("-"*30
)c.remove(2)
(f"a="
(f"b="
(f"c="
)
addr a=
0x1de10219908 b=
0x1de1041eba8 c=
0x1de10219908--
----
----
----
----
----
----
----
a=b=
c=
python變數賦值
從python2.0開始 等號可以和乙個算術操作符組合在一起,將計算結果重新賦值給左邊的變數,這被稱為增量賦值,類似下面的語句 x x 1 現在可以被寫作 x 1增量賦值相對普通賦值不僅僅是寫法上的改變,最有意義的變化是第乙個物件,金盃處理一次,可變物件會被就地修改 無修拷貝引用 不可變物件則和a ...
python 變數賦值
對於變數的內容再去傳遞,傳遞的是物件,有的傳遞物件本身,有的傳遞物件引用。可變資料型別 列表 字典。a 1,2,3 b a c a a 0 8 d 8,2,3 print a 8,2,3 print b 8,2,3 print c 1,2,3 print d 8,2,3 print id a 140...
python賦值中文變數 Python變數引用賦值
不,你不能。正如其他答案所指出的,你可以 ab?使用可變物件的別名來實現類似的效果。然而,這與c 引用不一樣,我想解釋一下實際上發生了什麼,以避免任何誤解。你可以看到,在c 和其他語言 中,變數 和物件字段,以及集合中的條目等 是乙個儲存位置,並且你可以將乙個值 例如,乙個整數 乙個物件或乙個指標 ...