首页 > 编程语言 > 详细

python中类的魔术方法

时间:2021-02-21 00:01:24      阅读:33      评论:0      收藏:0      [点我收藏+]
class Person:
    # 魔术方法
    ‘‘‘
    __init__:初始化魔术方法
    触发时机:初始化对象时触发(不是实例化触发,但是和实例化在一个操作中)
    ‘‘‘

    def __init__(self):
        pass

    ‘‘‘
    __new__:实例化的魔术方法(不建议重写)
    触发时机:在实例化时触发
    ‘‘‘

    def __new__(cls, *args, **kwargs):
        pass

    ‘‘‘
    __call__:对象调用方法
    触发时机:将对象当成函数使用的时候,会默认调用此函数中内容
    ‘‘‘

    def __call__(self, *args, **kwargs):
        pass

    ‘‘‘
    __del__:delete的缩写,析构魔术方法(不建议重写)
    触发时机:当对象没有用(没有任何变量引用)的时候触发
    
    1. 对象赋值
        p = Person()
        p1 = p
        说明:p和p1共同指向同一个地址
    2. 删除地址的引用
        del p1  删除p1对地址的引用
    3. 查看对地址的引用次数:
        import sys
        sys.getrefcount(p)
    4. 当一块空间没有了任何引用,默认执行__del__
        ref = 0
    ‘‘‘

    def __del__(self):
        pass

    ‘‘‘
    __str__:
    触发时机:打印对象名的时候,自动触发去调用__str__里面的内容
    注意:一定要在__str__里面添加return,return 后面内容就是打印对象看到的内容
    ‘‘‘

    def __str__(self):
        pass
总结:
重点:
__init__(构造方法,创建完空间之后调用的第一个方法),__str__
了解:
__new__ 作用  开辟空间
__del__ 作用  没有指针引用的时候会调用。99%不需要重写
__call__  作用:想不想将对象当成函数用。

python中类的魔术方法

原文:https://www.cnblogs.com/kevin1220/p/14422510.html

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