1. 程式人生 > >python學習之-類的內建函式

python學習之-類的內建函式

內建方法:__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)