TOP

再说Python面向对象的三大特性(二)
2018-10-10 04:11:56 】 浏览:244
Tags:再说 Python 面向 对象 三大 特性

sp; isinstance和type都可以用于判断对象和指定类间的关系,但是isinstance的判断没有type准确,它无法正确判断子类的对象和其父类的关系


class A:
    pass
class B(A):
    pass


b=B()
print(isinstance(b,B))
print(isinstance(b,A))
print(type(b) is B)
print(type(b) is A)
--------------------------------------------------------------------------------------
True
True
True
False


issubclass用于判断给定的两个类,前者是否是后者的子类


十一、反射


  hasattr(对象或类名,‘属性或方法名’)  判断指定的对象或类中是否存在指定的属性或方法,有返回True


  getattr(对象或类名,'属性或方法名')  获取对象或类的指定属性值或方法的内存地址


  setattr(对象或类名,‘新属性名’,新属性值) 给对象或类添加新的属性或方法


  delattr(对象或类名,‘新属性名’) 删除之前添加的属性


十二、类的内置方法


__doc__ :输出类的描述信息


__module__ :表示当前操作的对象在那个模块


__class__ :  表示当前操作的对象的类是什么


__dict__ :查看类或对象中的所有成员  类调用打印类的所有属性,不包括实例属性。实例调用打印所有实例属性


__str__ 格式化输出%s输出该方法的值


__repr__  格式化输出%r输出该方法的值,并且%s在没有__str__方法时也是输出该方法的值
  __del__  del 执行该方法
  __getitem__  用对象加[]方式取值


class A:
    def __init__(self):
        self.names=['egon','alex','eva'] #可以是其他序列
    def __getitem__(self, item):
        print(self.names[item])


a=A()
a[1]
----------------------------------------------------------
alex


  __setitem__  添加值
  __delitem__  删除值
  __new__ 用于创建没有属性的对象,调用object的__new__即可不需要自己实现。可以利用该方法实现单例模式
  __call__ 对象加括号执行该方法
  __len__  len()执行该方法
  __eq__  ==运算输出该方法的值


__hash__ hash执行该方法


 



再说Python面向对象的三大特性(二) https://www.cppentry.com/bencandy.php?fid=54&id=171227

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇深入理解Python面向对象的三大特性 下一篇Python入门教程之字符串常用方法..