面向对象小结

__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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值