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