一、判斷類、子類、物件關係的bif
1. issubclass(class, classinfo) 返回布林型
classinfo可以是類物件組成的元組,只要class與其中任何乙個候選類的子類一致,就返回true
>>> class a:
pass
>>> class b(a):
pass
>>> issubclass(b,a)
true
>>> issubclass(b,b)
true
>>> issubclass(b, object)
true
>>> class c:
pass
>>> issubclass(b, c)
false
>>>
2.isinstance(object, classinfo)
classinfo可以是類物件組成的元組,只要object是其中任何乙個候選類的物件,就返回true
>>> issubclass(b, c)
false
>>> b = b()
>>> isinstance(b , b)
true
>>> isinstance(b , a)
true
>>>
若b是a的子類,則b的例項化物件b也是a的例項化物件
二、屬性相關的bif
3.hasattr(object, name) 檢視例項化物件是否具有某屬性,name必須為字串
>>> class c:
def __init__(self, x=0):
self.x = x
>>> c = c()
>>> hasattr(c, 'x')
true
>>>
4.getattr(object, name[, default])
>>> getattr(c, 'x')
0>>> getattr(c,'y', '您所訪問的屬性不存在' )
'您所訪問的屬性不存在'
>>>
5.setattr(object, name, value)
>>> setattr(c, 'y', '1234')
>>> getattr(c, 'y')
'1234'
>>>
6.delattr(object, name)
>>> delattr(c, 'u')
>>> delattr(c, 'u')
traceback (most recent call last):
file "", line 1, in
delattr(c, 'u')
attributeerror: u
7. property(fget = none, fset = none, fdel = none)
>>> class c:
def __init__(self, size = 10):
self.size = size
def getsize(self):
return self.size
def setsize(self, value):
self.size = value
def delsize(self):
del self.size
x = property(getsize, setsize, delsize)
>>> c = c()
>>> c.x
10>>> c.x = 18
>>> c.x
18>>> del c.x
>>>
需要在類中定義讀取屬性的方法fget, 設定屬性的方法fset,刪除屬性的方法fdel,將屬性歸於property並傳給x,將x提供給使用者呼叫,當類中方法名需要更改時,使用者呼叫屬性無需改變,c.x即可呼叫屬性。
類和物件 相關的BIF
一 issubclass class,classinfo 如果說第乙個引數是第二個引數的子類則返回true 注意 乙個類會被認為是自身的子類 classinfo 可以是類物件組成的元祖,只要class是其中 任何乙個候選類的子類,則返回true class a pass class b a pass...
類和物件的一些BIF
issubclass 用於判斷自己的子類 issubclass a,b a是不是b的子類,是返回true 否則 false 自身也屬於自己的子類 isinstance object,classinfo 用於檢查乙個例項物件是否屬於乙個類 classinfo 可以傳入乙個元組 class a obje...
和類相關的BIF
issubclass class,classinfo 判斷第乙個引數是第二個引數的子類,這個判斷是比較寬鬆的判斷。因為第二個引數也可以是元組,並且只要引數1是元組內任意乙個元素的子元素,就會返回true。class a pass class b pass class c a pass issubcl...