首页 > 其他 > 详细

面向对象小结

时间:2019-09-07 17:24:36      阅读:54      评论:0      收藏:0      [点我收藏+]
__init__和__call__的区别

    1、__init__()的作用是初始化某个类的一个实例,等同于类的构造器
    2、__call__()的作用是使实例化能够像函数一样被调用,同时不影响实例本身的生命周期(__call__()不影响一个实例的构造和析构,但是__call__()可以用来改变实例的内部成员的值)
    __doc__():类的注释,无法继承给子类

    __str__():对象()会自动执行

    __add__():对象+对象,会自动执行

    __getitem__():对象[key]会自动执行

    __setitem__():对象[key]=value会自动执行

    __delitem__():del对象[key]会自动执行
__init__和__new__的区别

    1、__new__是在实例化创建之前被调用的,因为它的任务就是创建实例然后返回该方法
    2、__init__是当实例对象创建完成后被调用,然后设置对象属性的一些初始值,没有返回值,是一个实例方        法,即当创建一个新实例时,先调用__new__,再调用__init__。__new__的返回值(实例)将传递给             __init__方法的第一个参数,然后__init__给这个实例设置一些初始参数
需要区分:

    __setitem__:对象[key]=value触发
    __getitem__:对象[key]触发
    __setattr__:对象.key=value触发
    __getattr__:对象.key触发
面向对象的反射函数做区分:

    hasattr(object,name):查看对象中是否含有name属性/方法,返回布尔值
    getattr(object,name):从object中获取name属性/方法
    setattr(object,name,value):给object设置name=value
    delattr(object,name):删除object中name

    isinstance():检查对象是否是类的对象,返回True或False
    issubclass():检查一个类是否是另外一个类的子类,返回True或False

面向对象小结

原文:https://www.cnblogs.com/lzss/p/11481885.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!