日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gj7 对象引用、可变性和垃圾回收

發布時間:2024/9/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gj7 对象引用、可变性和垃圾回收 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

7.1 python變量到底是什么

#python和java中的變量本質不一樣,python的變量實質上是一個指針 int str, 便利貼a = 1 a = "abc" #1. a貼在1上面 #2. 先生成對象 然后貼便利貼a = [1,2,3] b = a print (id(a), id(b)) print (a is b) b.append(4) print (a)--- 1642030876232 1642030876232 True [1, 2, 3, 4]

7.2 ==和is的區別

is 判斷是否是同一個對象,id是否相等

a = [1,2,3,4] b = [1,2,3,4]print(a == b) # 判斷值是否相等 print (id(a), id(b)) print (a is b)c=1 d=1 print(c is d) # 將一定范圍的小整數,內存地址進行了復用 ? # --- True 1642030933512 1642030785544 False True---class People:passperson = People() if type(person) is People:print ("yes")type(person)--- yes __main__.People

7.3 del語句和垃圾回收

# cpython中垃圾回收的算法是采用 引用計數 # 當計數器減為0 就會被回收 a = object() b = a del a print(b) print(a)class A:def __del__(self): # 當被回收的時候,執行下面的邏輯pass

7.4 一個經典的錯誤

為了數據的安全性,使用tuple而不是list類型來存儲

def add(a, b):a += breturn a a = 1 b = 2 c = add(a,b) print(c) print(a,b) # --- 3 1 2 # ---傳遞進來的list受到了影響 a = [1,2] b = [3,4] c = add(a,b) print(c) print(a,b) # --- [1, 2, 3, 4] [1, 2, 3, 4] [3, 4] # --- a = (1,2) b = (3,4) c = add(a,b) print(c) print(a,b) --- (1, 2, 3, 4) (1, 2) (3, 4) --- ? class Company:def __init__(self, name, staffs=[]):self.name = nameself.staffs = staffsdef add(self, staff_name):self.staffs.append(staff_name)def remove(self, staff_name):self.staffs.remove(staff_name)com1 = Company("com1", ["lewen1", "lewen2"]) com1.add("lewen3") com1.remove("lewen1") print("com1.staffs:",com1.staffs)com2 = Company("com2") # 使用了默認的[],list又是可變的對象 com2.add("lewen") print(com2.staffs)print (Company.__init__.__defaults__) # 沒有傳遞參數時,都使用默認的【】值com3 = Company("com3") # 使用了默認的[],list又是可變的對象 com3.add("lewen5") print (com2.staffs) print (com3.staffs) print (com2.staffs is com3.staffs) # --- com1.staffs: ['lewen2', 'lewen3'] ['lewen', 'lewen5', 'lewen', 'lewen5', 'lewen', 'lewen5', 'lewen'] (['lewen', 'lewen5', 'lewen', 'lewen5', 'lewen', 'lewen5', 'lewen'],) ['lewen', 'lewen5', 'lewen', 'lewen5', 'lewen', 'lewen5', 'lewen', 'lewen5'] ['lewen', 'lewen5', 'lewen', 'lewen5', 'lewen', 'lewen5', 'lewen', 'lewen5'] True

?-

總結

以上是生活随笔為你收集整理的gj7 对象引用、可变性和垃圾回收的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。