__init__(self[,...])
__init__和__new__組成python的構造器,但__init__更多的是負責初始化操作,相當于一個項目中的配置文件,__new__才是真正的構造函數,創建并返回一個實例對象,如果__new__只調用了一次,就會得到一個對象
?
__new__(cls[,...])
當繼承一個不可修改的類,但又想去修改的時候,需要重寫__new__方法
>>>
class
Capstr(str):
#
str是一個不可修改的類
def
__new__
(cls,string):
string
=
string.upper()
return
str.
__new__
(cls,string)
>>>a = Capstr(
'
i am Demi
'
)
>>>
a
'
I AM DEMI
'
?
? __del__(self)
是對象的析造器,并非所有del操作都會調用__del__(),只有對象生成后,所有對它的引用都被del之后,才會啟動垃圾回收機制,才會調用__del__方法
>>>
class
C:
def
__init__
(self):
print
(
'
__init__方法正在被調用
'
)
def
__del__
(self):
print
(
'
__del__方法正在被調用
'
)
>>>c1=
C()
__init__方法正在被調用
>>>c2=
c1
>>>
del
c2
>>>
del
c1
__del__方法正在被調用
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

