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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python类的构造方法__init__(self)和析构函数__del__详解

發布時間:2025/3/15 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python类的构造方法__init__(self)和析构函数__del__详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、構造方法__init__(self)

__init__()方法是一種特殊的方法,被稱為類的構造函數或初始化方法,當創建了這個類的實例時就會調用該方法。一般用來對實例的屬性進行初使化,如果不提供,Python 會給出默認的__init__方法。

class testClass:
? ? ? ? ?def __init__(self, name, gender): //定義 __init__方法,這里有三個參數,這個self指的是一會創建類的實例的時候這個被創建的實例本身(例中的testman),你也可以寫成其他的東西,比如寫成me也是可以的,這樣的話下面的self.Name就要寫成me.Name。
self.Name=name //通常會寫成self.name=name,這里為了區分前后兩個是不同的東東,把前面那個大寫了,等號左邊的那個Name(或name)是實例的屬性,后面那個是方法__init__的參數,兩個是不同的)
self.Gender=gender //通常會寫成self.gender=gender
print('hello') //這個print('hello')是為了說明在創建類的實例的時候,__init__方法就立馬被調用了。

testman = testClass('neo,'male') //這里創建了類testClass的一個實例 testman, 類中有__init__這個方法,在創建類的實例的時候,就必須要有和方法__init__匹配的參數了,由于self指的就是創建的實例本身,self是不用傳入的,所以這里傳入兩個參數。這條語句一出來,實例testman的兩個屬性Name,Gender就被賦值初使化了,其中Name是 neo,Gender 是male。

class testClass (object):def __init__(self, name, gender):#構造函數或類的初始化,創建實例時會被調用self.Name = nameself.Gender = genderprint ('hello')testman = testClass ('neo', 'male') print (testman.Name) print (testman.Gender)class tetsClass2 (object):def __init__(me, name, gender):#構造函數或類的初始化,創建實例時會被調用me.gender = genderprint ("hello2") testman2 = tetsClass2 ('neo', 'male') print (testman2.name) print (testman2.gender)"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py hello neo male hello2 neo maleProcess finished with exit code 0

二、析構函數__del__

__del__ (),被稱為類的析構函數,__del__()在對象消逝的時候被調用,當對象不再被使用時,__del__()方法運行。

當使用del 刪除對象時,會調用他本身的析構函數,另外當對象在某個作用域中調用完畢,在跳出其作用域的同時析構函數也會被調用一次,這樣可以用來釋放內存空間。  __del__()也是可選的,如果不提供,則Python 會在后臺提供默認析構函數

如果要顯式的調用析構函數,可以使用del關鍵字: del obj

class Test(object):name='小雷'address='上海市'def __init__(self,name,age):self.name=nameself.age=ageprint('這里是構造方法')def test1(self):print(self.name,self.age)def __del__(self):print('這里是析構函數,清理了')def test2(self):print(self.name, Test.address)def test3(self):print('準備被清理的') Test1=Test('小張',22) Test1.test1() Test1.test2() Test1.test3() Test2=Test('王大大',33) Test2.test1() Test2.test2() del Test2.test3 Test2.test3()#試驗證明 #1、析構函數__del__等所有程序執行完才會執行 #2、被del的方法,無法再被調用 #3、析構函數會自動被調用 #4、del 方法,會調用析構函數"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py Traceback (most recent call last):File "C:/Users/wangli/PycharmProjects/Test/Test/test.py", line 89, in <module>del Test2.test3 AttributeError: test3 這里是構造方法 小張 22 小張 上海市 準備被清理的 這里是構造方法 王大大 33 王大大 上海市 這里是析構函數,清理了 這里是析構函數,清理了

?

總結

以上是生活随笔為你收集整理的Python类的构造方法__init__(self)和析构函数__del__详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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