這次帶給大家在Python複製中物件生命週期如何使用,使用Python複製物件生命週期的注意事項有哪些,下面就是實戰案例,一起來看一下。
Python的淺複製以及深複製我了解的並不多,我不清楚shutil中的copy1和copy2是不是算是淺複製和深複製?這兩個操作,一個是檔案屬性重建,還有一個是檔案屬性不變。不知道物件的複製是否可以以此類比?
在複製之前,為了能夠觀看一下GC的執行,定義一個特殊的類別和物件。測試程式碼如下:
class Demo: def del(self): print("Removing{0}".format(id(self))) x = Demo() del x
程式執行結果如下:
#接下來建構淺複製的例子:E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08>pythoncopy1.py
Removing17722678
>>>obj_list1 = [Demo(),Demo()] >>>obj_list2 = obj_list1[:] >>> del obj_list1 >>> del obj_list2 Removing1902510644416 Removing1902510644360從上面的結果看,第一次del並沒有觸發物件銷毀的方法執行。這是在互動介面中進行偵錯出現的結果,如果程式碼是寫到一個具體的檔案中,那麼程式執行的結果有可能不同。當所有的語句都寫到同一個檔案的時候,檔案中的物件作用域會有輕微的調整。這是值得我們注意的。 另一種常見的淺複製方法:
>>> o1 =o2 = Demo() >>> del o1 >>> del o2 Removing1902510136568相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章! 推薦閱讀:
以上是在Python複製中物件生命週期如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!