#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...