繁華開(kāi)滿(mǎn)天機(jī)
2022-06-14 16:20:45
考慮這個(gè)賦值語(yǔ)句示例:>>> x, y = x[y] = {}, None>>> x{None: ({...}, None)}>>> y>>>分配的價(jià)值是什么x?這個(gè)分配是如何工作的?
1 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
該語(yǔ)句將最右側(cè)的值分配給其左側(cè)的每個(gè)目標(biāo),從左側(cè)開(kāi)始。因此,它相當(dāng)于
t = {}, None
x, y = t
x[y] = t
所以,t開(kāi)始是一個(gè)由空dict和值組成的元組None。
接下來(lái),我們解包t并將每個(gè)部分分配給xand y:x綁定到 empty dict,并且y綁定到None。
最后,我們也可以將元組分配給x[y]as,因?yàn)槲覀儎倓偠x了x和y。鍵None被添加到被dict引用的x對(duì)象中,它的值是原始元組。因此,我們x[y]對(duì)自身進(jìn)行了引用x:一個(gè)循環(huán)!
Python 可以檢測(cè)到這個(gè)循環(huán),所以它顯示dict為{...},而不是試圖將其無(wú)限擴(kuò)展為{None: ({None: ({None: ...。
添加回答
舉報(bào)
0/150
提交
取消