python學習之-類的內建函式
阿新 • • 發佈:2018-12-16
內建方法:__str__(該方法必須返回字串型別),在對像被列印時自動觸發,然後將該方法的返回值當做列印結果輸出)
class People:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self): #繫結給物件的方法
return '<%s:%s>' %(self.name,self.age) #這個方法必須返回一個字串型別的值,格式自定義一不限
obj=People('egon',18)
print(obj) # 底層原理就是print(obj.__str__())
PS:列印物件時候就自動觸發了__str__這個方法
內建方法:__del__(會在物件被刪除時自動觸發,我們可以在__del__內做一些回收系統資源的事)
class Foo:
def __init__(self,x,y,filepath):
self.x=x
self.y=y
self.f=open(filepath,mode='rt',encoding='utf-8')
def __del__(self):#這個方法就是物件被刪之前一定會觸發這個程式下面的程式碼
# 回收系統資源
self.f.close()
obj=Foo(10,20,'settings.py')
del obj # 刪除物件,底層原理就是obj.__del__()
print('========================>')
isinstance(obj,cls)檢查obj(一個例項)是否是類 cls 的物件
class Foo(object): pass obj = Foo() isinstance(obj, Foo)
PS:判斷一個值資料型別的時候推薦用這個,type不推薦使用
issubclass(sub, super)檢查sub類是否是 super 類的派生類(其實就是檢查一個類是否是一個類的子類)
class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo)