3 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
變量a指向?qū)ο蟆癉og”。最好將Python中的變量視為標(biāo)記。您可以將標(biāo)記移動(dòng)到不同的對(duì)象,這是您在更改時(shí)所a = "dog"
執(zhí)行的操作a = "dog eats treats"
。
但是,不變性是指對(duì)象,而不是標(biāo)簽。
如果你試圖a[1] = 'z'
做"dog"
成"dzg"
,你會(huì)得到錯(cuò)誤:
TypeError: 'str' object does not support item assignment"
因?yàn)樽址恢С猪?xiàng)目賦值,因此它們是不可變的。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
首先a
指向字符串“狗”。然后你改變了變量a
以指向一個(gè)新的字符串“Dog eats treats”。你實(shí)際上并沒有改變字符串“Dog”。字符串是不可變的,變量可以指向他們想要的任何東西。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
字符串對(duì)象本身是不可變的。
a指向字符串的變量是可變的。
考慮:
a = "Foo"
# a now points to "Foo"
b = a
# b points to the same "Foo" that a points to
a = a + a
# a points to the new string "FooFoo", but b still points to the old "Foo"
print a
print b
# Outputs:
# FooFoo
# Foo
# Observe that b hasn't changed, even though a has.
添加回答
舉報(bào)