python 内建函数(五)--类

1、isinstance(obj,class_or_tuple)

  参数:obj,必选,一个对象。class_or_tuple,必选,一个类或者多个类组成的元组

  作用:判断对象obj是否是 class_or_tuple的实例(对象)

  返回值:布尔值。是,返回True,不是返回False

2、 issubclass(cls, class_or_tuple)

  参数:cls,必选,类名。class_or_tuple,必选,一个类或者多个类组成的元组。

  作用:判断类cls是否是class_or_tuple的子类,是返回True。否,返回False.

  返回值:布尔值。是,返回True,不是返回False

3、super()

  用于在有类继承关系且有方法覆盖的子类中,调用父类中被覆盖的方法。

  【1】无参数的。

    作用:用于方法内,返回父类的实例对象。用于在子类中访问父类被覆盖的方法

          super().方法名(参数)

  【2】有参数的。super(子类名称,子类对象)

    作用:方法内或者类外都可以,返回父类的实例对象。用于访问父类中被覆盖的方法

       super(子类名称,子类对象).方法名(参数)

对象的属性管理函数:

getattr(obj, name[,default]) 从一个对象得到对象的属性;getattr(x,'y') 等同于x.y,当属性不存在时,如果给出default参数则返回defualt, 如果没有给出default,则产生一个AttributeError错误

hasattr(obj, name) 用给定的name返回对象obj是否有此属性,此种做法可以避免在getattr(obj,name) 时引发错误

setattr(obj, name, value) 给对象obj的名为name的属性设置相应的值value; set(x, 'y', z) 等同于 x.y = z

delattr(obj, name) 删除对象obj中的name属性,delattr(x, 'y') 等同于 del x.y

 

示例:
    class Dog:
        pass
    d = Dog()
    d.color = '白色'
    v = getattr(d, 'color')   # 等同于 v = d.color
    v = getattr(d, 'kinds')  # 出错,没有d.kinds属性
    v = getattr(d, 'kinds', '没有这个属性')  # v= '没有这个属性'
    hasattr(d, 'color')  # True
    hasattr(d, 'kinds')  # False
    setattr(d, 'kinds', '京巴')  # 等同于d.kinds ='京巴'
    hasattr(d, 'kinds')  # True
    delattr(d, 'kinds')  # 等同于 del d.kinds
    hasattr(d, 'kinds')  # False

 

 

posted @ 2020-12-31 16:08  昱成  阅读(109)  评论(0编辑  收藏  举报