1.issubclass
使用issubclass(class,classinfo)检查class是否是classinfo的子类。
注意:class是自己的父类;
classinfo可以是对象元组,只要class是其中任意对象的子类,就返回True;
2.isinstance
使用isinstance(object,classinfo)检查object是不是classinfo的类对象。
注意:第一个参数不是object将永远返回Fasle;
第二个参数不是类或者类对象组成的元组,会抛出TypeError异常;
3.hasattr(attr=attribute属性)
使用hasattr(object,name)检查object是不是有指定的name属性。
注意:是的话就返回True,否则是False;
name是string类型;
4.getattr
使用getattr(object,name[,default])检查object是不是有指定的name属性。有默认参数default。在object没有name属性的情况下,设置了default的话返回default,否则抛出异常。
5.setattr
使用setattr(object,name,value)设置指定对象的name属性的值为value,如果不存在name属性则创建name属性。
6.delattr
使用delattr(object,name)删除指定对象的name属性,如果不存在name属性则抛出AttributeError的异常。
7.property
使用property(fget=None,fset=None,fdel=None,doc=None)将一个属性通过fget,fset,fdel等方法关联到其他的属性。
class C:
def __init__(self,size=10):
self.size = size
def getSize(self):
return self.size
def setSize(self,size):
self.size = size
def delSize(self):
del self.size
x = property(getSize,setSize,delSize)
c = C()
c.size
c.x
c.setSize(13)
c.size
c.x
del c.x
c.getSize()
c.x
10
10
13
13
AttributeError: ‘C’ object has no attribute ‘size’
AttributeError: ‘C’ object has no attribute ‘size’