聽得似懂非懂 現僅作記錄
關於類的一些函數
issubclass() 方法用於判斷參數 class 是否是類型參數 classinfo 的子類。
issubclass(class, classinfo)
參數
class – 類。
classinfo – 類。
返回值
如果 class 是 classinfo 的子類返回 True,否則返回 False。
自己是自己的子類
isinstance() 函數來判斷一個對象是否是一個已知的類型,類似 type()。
isinstance() 與 type() 區別:
type() 不會認爲子類是一種父類類型,不考慮繼承關係。
isinstance() 會認爲子類是一種父類類型,考慮繼承關係。
如果要判斷兩個類型是否相同推薦使用 isinstance()。
isinstance(object, classinfo)
參數
object – 實例對象。
classinfo – 可以是直接或間接類名、基本類型或者由它們組成的元組。
如果對象的類型與參數二的類型(classinfo)相同則返回 True,否則返回 False。
isinstance (a,(str,int,list)) # 是元組中的一個 也會返回True
True
hasattr() 函數用於判斷對象是否包含對應的屬性。
hasattr(object, name)
object – 對象。
name – 字符串,屬性名。
如果對象有該屬性返回 True,否則返回 False。
hasattr的升級版 getattr(object, name[,default])
setattr() 函數對應函數 getattr(),用於設置屬性值,該屬性不一定是存在的。不存在則新建
setattr(object, name, value)
delattr() 存在則刪除,不存在則報錯
delattr(object, name)
property() 函數的作用是在新式類中返回屬性值。
class property([fget[, fset[, fdel[, doc]]]])
參數
fget – 獲取屬性值的函數
fset – 設置屬性值的函數
fdel – 刪除屬性值函數
doc – 屬性描述信息
返回值
返回新式類屬性。
class C(object):
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")