物件導向內建方法

2022-02-01 00:28:18 字數 1043 閱讀 4089

判斷obj是否是cls類的物件

例:li=[1,[2,[3,[4]]]]

def run_list(li):

for i in li:

if isinstance(i,list):

run_list(i)

else:

print(i)

run_list(li)

判斷sub是否是super的派生類

通過字串的形式操作物件的相關屬性
(1)hasattr

print(hasattr(peo1,'name')) #判斷name是否在peo1.name中是可以訪問的屬性

(2)getarrt

print(getattr(peo1,'xx','none'))#在peo1中沒有xx這個屬性,有的話返回對應的值;沒有這個屬性,返回none,不會報錯

(3)strattr

setattr(peo1,'age',19) #增加屬性

# print(peo1 .__dict__ )

(4)delattr(peo1,'name') #刪除

__str__ 在列印物件時觸發

__del__析構方法

__getattr__ 物件在呼叫屬性和方法時,找不到,就會觸發;

__setattr__ 物件再給屬性賦值時,就會觸發

class a():

bb='123'

def __getattr__(self, item):

print(item) #byuu

return 'aa'

def __setattr__(self, key,value):

print(key,value) # 新的屬性名和值 bb 199

a = a()

print(a.byuu) #呼叫的屬性不存在就觸發__getattr__

# a.bb = 199 # 屬性賦值時觸發__setattr__

物件導向 幾個內建方法

首先class類裡的內建方法,比如 call str 這些都是在一定條件下自動執行的。下面我們來介紹幾個內建方法 1 str 先講講他的作用,在print列印物件的時候會自動觸發執行 例子1 class student def init self,name,age self.name name se...

python 物件導向的內建方法

要求 了解即可,能用最好 1.print obj str obj s obj 都呼叫obj.str 方法,若類中沒有找 repr 方法,若沒有找父類的 str 方法,若沒有找 repr 方法,直到object 2.r obj repr obj 都呼叫obj.repr 方法,若類中沒有找到 repr ...

python物件導向 內建方法(魔術方法)

魔術方法就是乙個類 物件中的方法,和普通方法唯一的不同是 普通方法需要呼叫,而魔術方法是在特定時刻自動觸發。1 init 初始化方法 觸發時機 初始化物件時觸發 不是例項化觸發,但和例項化在乙個操作中 引數 至少有乙個self,接收物件 返回值 無 作用 初始化物件的成員 注意 使用該方式初始化的成...