Python类的BIF(issubclass, isinstance, hasattr ,getattr, setattr, delattr)
issubclass(class, classinfo)
如果参数class,是classinfo的子类,就会返回True
1.一个类会被认为是自身的子类
2.classinfo 可以使类对象组成的元组,只要class是其中任何一个候选类的子类,则返回True
**小贴士:object是所有类的基类
isinstance(object, classinfo)
检查一个对象是否属于一个类,object为实例对象的一个参数,classinfo是类或者元组
1.如果第一个参数不是对象,则永远返回False
2.如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError异常
hasattr(object, name)
attr = attribute 属性
测试一个对象,里面是否有指定的属性,其中name要用双引号“ ”括住。
例子:
>>> class C:
def __init__(self, x=0):
self.x = x
>>> c1 = C()
>>> hasattr(c1, x)
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
hasattr(c1, x)
NameError: name 'x' is not defined #如果name没有加双引号,就会触发NameError
>>> hasattr(c1, 'x')
True
getattr(object, name[, default])
返回对象指定的属性值,如果指定的属性不存在,就会将default参数打印出来,如果没有default参数,就会抛出AtrributeError的异常。
>>> class C:
def __init__(self, x=0):
self.x = x
>>> getattr(c1,'x')
0
>>> getattr(c1, 'y') #没有default的参数,抛出AtrributeError的异常
Traceback (most recent call last):
File "<pyshell#38>", line 1, in <module>
getattr(c1, 'y')
AttributeError: 'C' object has no attribute 'y'
>>> getattr(c1, 'y', '您访问的对象属性不存在') #有default参数,返回default
'您访问的对象属性不存在'
>>>
setattr(obiect, name, value)
可以设置对象中,指定属性的值,如果对应属性不在,就会新建一个属性,并将值赋予该属性。(name一样要加双引号)
>>> class C:
def __init__(self, x=0):
self.x = x
>>> setattr(c1, 'y', 'luckywow')
>>> getattr(c1, 'y','您访问的对象属性不存在')
'luckywow'
delattr(object, name)
删除指定对象的属性,如果指定对象没有相应属性,则返回AtrributeError的异常
class C:
def init(self, x=0):
self.x = xsetattr(c1, ‘y’, ‘luckywow’)
delattr(c1, ‘y’) #删除对象c1中的属性 y
delattr(c1, ‘y’) #由于c1已经没有属性y了,所以返回异常
Traceback (most recent call last):
File “<pyshell#47>”, line 1, in
delattr(c1, ‘y’)
AttributeError: y
上一篇: libevent-2.0.so.5: cannot open shared object file: No such file or directory
下一篇: CAT集成spring boot
推荐阅读
-
全面了解Python的getattr(),setattr(),delattr(),hasattr()
-
浅析Python中的getattr(),setattr(),delattr(),hasattr()
-
python3中的setattr(),getattr(),hasattr(),delattr()
-
#python中的反射方法,getattr,setattr,hasattr,delattr
-
python 的getattr()函数、setattr()函数、hasattr()函数、delattr()函数
-
Python类的BIF(issubclass, isinstance, hasattr ,getattr, setattr, delattr)
-
python中的getattr hasattr setattr delattr
-
python中的反射: hasattr、getattr、setattr 和 delattr*
-
isinstance/type/issubclass的用法,反射(hasattr,getattr,setattr,delattr)
-
浅谈Python的getattr(),setattr(),delattr(),hasattr()