所以這是代碼
tmp_dict = {}
x = tmp_dict.setdefault("key1", set())
x |= {1,2}
tmp_dict
輸出是
{'key1': {1, 2}}
但是如果我們將第三行更改為
x = x | {1,2}
那么輸出將是
{'key1': set()}
所以我很好奇為什么|= 這里有這樣的魔法來更新字典。我認為x = x | {1,2}并且x |= {1,2}將是等效的,但實際上它們不是。
uj5u.com熱心網友回復:
這是因為|=參考__ior__,但|參考__or__。
|=將修改原始x物件,這會影響tmp_dict,但修改x = ..將x完全覆寫,因此對 的參考tmp_dict將消失。
它只會創建一個以x集合的并集命名的變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344559.html
