Python和類相關的一些BIF

2021-10-03 00:00:26 字數 1901 閱讀 2241

#issubclass(class,classinfo),class是否是classinfo的子類(繼承關係)

classa:

def__init__

(self)

: self.x =

1def

getsize

(self)

:return self.x

defsetsize

(self,value)

: self.x = value

defdelsize

(self)

:del self.x

t =property

(getsize,setsize,delsize)

class

b(a)

:pass

classc:

pass

print

(issubclass

(b,a)

)print

(issubclass

(b,object))

#object 是所有類的基類

print

(issubclass

(b,(a,c)))

#classinfo是乙個有類物件構成的元組,且候選物件包含了b的基類

temp = b(

)temp1 = a(

)#isinstance(object,classinfo) 檢查object物件是否是classinfo的例項物件

print

(isinstance

(temp,b)

)print

(isinstance

(temp,a)

)#也是父類的例項物件

print

(isinstance

(temp,

(b,c)))

#classinfo是乙個有類物件構成的元組,且候選物件包含了temp的類物件

#判斷操作

#hasattr(object,name) object是否有name這個屬性,屬性用引號''括起來

a =hasattr

(temp,

'x')

print

(a)#getattr(object,name[,default]) 返回物件指定屬性的值,可以設定預設屬性(若沒有該屬性,返回預設值)

#沒有設定預設值且沒有該屬性,則出現attributeerror

b =getattr

(temp,

'x')

print

(b)#setattr(object,name,value) 設定屬性的值,沒有該屬性的話,則增加乙個新的屬性

setattr

(temp,

'x',3)

print

(temp.x)

setattr

(temp,

'y',10)

print

(temp.y)

#delattr(object,name) 刪除指定的屬性,若屬性不存在,丟擲attributeerror

delattr

(temp,

'y')

# print(temp.y) 出現attributeerror: 'b' object has no attribute 'y'

#property(fget=none,fset=none,fdel=none,doc=none)類a

#fget:獲取屬性的方法

#fset:設定屬性的方法

#fdel:刪除屬性的方法(都是由程式設計師自己定義的)

#也就說使用property修改屬性的值,非常方便

temp.t =

100print

(temp.x)

與類相關的一些指標

測試 include using namespace std class myclass int axbxc void show cout a is int main int myclass pp myclass cl myclass p int p1 pp myclass axbxc p cl p...

python 定義類和繼承類的一些知識

裝飾器類 from functools import wraps class logit object def init self,logfile out.log self.logfile logfile def call self,func wraps func def args,kwargs l...

python中一些相關的BIF

一些相關的bif issubclass class,classinfo class a pass class b a pass print issubclass b,a print issubclass a,b 輸出為true false意思是b類在a類裡面 isinstant object,cla...