對 Python 對象原位賦值在編程中很常見,目的是為保持 id() 值不變,從而使變量實現跨類 模塊傳遞參數。
相比 tuple,list 容器本身是可變的,要保持其 id() 值不變可采用原位賦值操作 (如 += -=)。
若原位賦值操作對模塊全局變量失效,可考慮使用 __init__() 特殊方法。
>>> a = [1, 2, 3] >>> id(a) 40404424 >>> b = a >>> id(b) 40404424 >>> b.__init__(list(b)) >>> b [1, 2, 3] >>> id(b) 40404424 >>> b.__init__(b) >>> b [] >>> id(b) 40404424
注意:若 __init__() 前後內容 ID 相同,將導緻 list 變為空。
解決辦法是首先使用 list() set() tuple() 等將其變成不同 ID 對象,然後再 __init__()。
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。