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__详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一套完整的Selenium自动化测试框架
- 下一篇: python 数据库查询返回list或t