__new__:生成實例
__init__:生成實例的屬性
__call__:實例對象加()會執(zhí)行def__call__:...方法里邊的內(nèi)容。
__del__:析構方法,當對象在內(nèi)存中被釋放時,自動觸發(fā)執(zhí)行。如當delobj或者應用程序運行完畢時,執(zhí)行該方法里邊的內(nèi)容。
__enter__和__exit__:出現(xiàn)with語句,對象的__enter__被觸發(fā),有返回值則賦值給as聲明的變量;with中代碼塊執(zhí)行完畢時執(zhí)行__exit__里邊的內(nèi)容。
__module__:表示當前操作的對象在那個模塊obj.__module__
__class__:表示當前操作的對象的類是什么obj.__class__
__doc__:類的描述信息,該描述信息無法被繼承
__str__:改變對象的字符串顯示print函數(shù)--->obj.__str__()
__repr__:改變對象的字符串顯示交互式解釋器--->obj.__repr__()
__format__:自定制格式化字符串
__slots__:一個類變量用來限制實例可以添加的屬性的數(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相關知識,請關注IT培訓機構:千鋒教育。