内置函数
issubclass(class1,class2)
判断class1类是否为class2类的子类,返回True和False
注意1:类会被认为是自身的子类
>>>class Student():
pass
>>>issubclass(Dog,Dog)
True
注意2:class2可以是一个包含多个类的元组
>>>class Teacher():
pass
>>>issubclass(Student,(Student,Teacher))
True
注意3:所有类都是object的子类
>>> issubclass(Dog,object)
True
isinstance(instance,class)
判断instance是否为class类的实例化对象,返回True和False
注意1:
如果instance不传实例对象,结果永远为False
>>> isinstance(student,Student)
True
>>> isinstance(Student,Student)
False
>>> isinstance(‘demi‘,Student)
False
注意2:
如果class不传类或由类组成的元组,则抛出TypeError异常
>>> isinstance(teacher,(Student,Teacher))
True
>>> isinstance(teacher,teacher)
TypeError: isinstance() arg 2 must be a type or tuple of types
内置方法
hasattr(object,attribute)
判断object对象是否有attribute属性,返回True和False;其中属性需要用字符串的引号括起来,否则会被当做变量
getattr(object,attribute[,default])
判断object对象是否有attribute属性,可返回用户自定义;如果object对象不包含attribute属性,则打印default
setattr(object,attribute,value)
设定object对象中的attribute属性的值为value;如果object对象不包含attribute属性,则新建该属性并赋值
delattr(object,attribute)
删除object对象中的attribute属性;当指定attribute不存在时,抛出AttributeError异常
property(fget,fset,fdel)
用属性来访问属性,以函数的形式来定义一个属性,括号中传入方法名称
class C:
def __init__(self,x=0):
self.x = x
def getx(self):
return self.x
def setx(self,value):
self.x = value
def delx(self):
del self.x
y = property(getx,setx,delx)
如果 c 是 C 的实例化:c.y 将触发 geattr;c.y = value 将触发 seattr;del c.y 触发 delattr
原文:https://www.cnblogs.com/demilisi/p/11048174.html