类和对象的相关BIF
1.issubclass(class,classinfo)
用于判断参数 class 是否是类型参数 classinfo 的子类。如果 class 是 classinfo 的子类返回 True,否则返回 False。
(1)classinfo可以是一个***元组***
(2)自身可以是自身的子类
(3)class,classinfo都是类
>>> class A():
pass
>>> class B(A):
pass
>>> issubclass(B,A)
True
>>> issubclass(A,B)
False
>>> issubclass(B,object) #object是所有类的基类
True
2.isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()
isinstance(object, classinfo)
(1)object – 实例对象。
classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
(2)如果第一个参数不是实例对象,则永远返回False
>>> class A():
pass
>>> class B(A):
pass
>>> b=B()
>>> isinstance(b,A)
True
3 hasattr(object, name)
hasattr() 函数用于判断对象是否包含对应的属性。
(1)object – 对象。 name – 字符串,属性名,一定是字符串形式
(2)如果对象有该属性返回 True,否则返回 False。
4.getattr(object, name[, default])
用于返回一个对象属性值。
object – 对象。
name – 字符串,对象属性。
default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
>>> class A():
def __init__(self,x=0):
self.x=x
>>> c=A()
>>>> getattr(c,'x')
0
>>> getattr(c,'y',3) # 属性 bar2 不存在,但设置了默认值
3
5 setattr(object, name, value)
用于设置属性值,该属性不一定是存在的。
6. delattr(object, name)
函数用于删除属性。
7.property(fget=None, fset=None, fdel=None, doc=None)
作用是在新式类中返回属性值
fget – 获取属性值的函数
fset – 设置属性值的函数
fdel – 删除属性值函数
doc – 属性描述信息