__new__:生成實(shí)例
__init__:生成實(shí)例的屬性
__call__:實(shí)例對(duì)象加()會(huì)執(zhí)行def__call__:...方法里邊的內(nèi)容。
__del__:析構(gòu)方法,當(dāng)對(duì)象在內(nèi)存中被釋放時(shí),自動(dòng)觸發(fā)執(zhí)行。如當(dāng)delobj或者應(yīng)用程序運(yùn)行完畢時(shí),執(zhí)行該方法里邊的內(nèi)容。
__enter__和__exit__:出現(xiàn)with語(yǔ)句,對(duì)象的__enter__被觸發(fā),有返回值則賦值給as聲明的變量;with中代碼塊執(zhí)行完畢時(shí)執(zhí)行__exit__里邊的內(nèi)容。
__module__:表示當(dāng)前操作的對(duì)象在那個(gè)模塊obj.__module__
__class__:表示當(dāng)前操作的對(duì)象的類(lèi)是什么obj.__class__
__doc__:類(lèi)的描述信息,該描述信息無(wú)法被繼承
__str__:改變對(duì)象的字符串顯示print函數(shù)--->obj.__str__()
__repr__:改變對(duì)象的字符串顯示交互式解釋器--->obj.__repr__()
__format__:自定制格式化字符串
__slots__:一個(gè)類(lèi)變量用來(lái)限制實(shí)例可以添加的屬性的數(shù)量和類(lèi)型
__setitem__,__getitem,__delitem__:
classFoo:
def__init__(self,name):
self.name=name
def__getitem__(self,item):
print(self.__dict__[item])
def__setitem__(self,key,value):
self.__dict__[key]=value
def__delitem__(self,key):
print('delobj[key]時(shí),我執(zhí)行')
self.__dict__.pop(key)
def__delattr__(self,item):
print('delobj.key時(shí),我執(zhí)行')
self.__dict__.pop(item)
f1=Foo('sb')
f1['age']=18
f1['age1']=19
delf1.age1
delf1['age']
f1['name']='alex'
print(f1.__dict__)
__get__():調(diào)用一個(gè)屬性時(shí),觸發(fā)
__set__():為一個(gè)屬性賦值時(shí),觸發(fā)
__delete__():采用del刪除屬性時(shí),觸發(fā)
__setattr__,__delattr__,__getattr__:
以上內(nèi)容為大家列舉了Python面向?qū)ο笾袔щp下劃線的特殊方法,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。