python魔法函数

作者: 零_WYF | 来源:发表于2019-03-20 21:33 被阅读1次

1.__init __ ;__new __ ; __del __
__init __ 方法是Python最基本的魔术方法,通过此方法我们可以定义一个对象的初始操作,实际上它背后还有一个__new __方法。__new __是用来创建类并返回这个类的实例, 而__init __只是将传入的参数来初始化该实例。
对象生命周期调用结束时,__del __ 方法会被调用。

class A:
    def __init__(self, name):
        self.name = name
        print(self.name)

    def __del__(self):
        print('del', self.name)

if __name__ == '__main__':
    a = A('王一帆')
    b = A('王二帆')
    c = A('王三帆')
image.png

下面这个例子,可以让你更加形象的看到垃圾回收机制的运作:

import time
class A:
    def __init__(self, name):
        self.name = name
        print(self.name)

    def __del__(self):
        print('del', self.name)

if __name__ == '__main__':
    a = A('王一帆')
    b = a
    del a  # 由于a被b引用,因此删除a不会使对象被回收
    print('==================')
    time.sleep(3)
    del b
image.png

由此可见当对象不再被使用时,该对象就会被python的垃圾回收机制回收掉.

2.__str __和__rep __
_str __相当于是str()方法 而__repr __相当于repr()方法。str是针对于让人更好理解的字符串格式化,而repr是让机器更好理解的字符串格式化。
在使用print()方法的时候,print首先调用的就是类里面的定义的__str __如下所示:

class A:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return 'A的实例对象str%s' % self.name

    def __repr__(self):
        return 'A的实例对象repr'
image.png

相关文章

  • python:函数说明

    Python: 函数参数魔法 2016-12-01 函数参数 在 Python 中,定义函数和调用函数都很简单,但...

  • 第二章 魔法函数

    一. 什么是魔法函数 二. python的数据模型以及数据模型对python的影响(数据模型也叫魔法函数) 三. ...

  • 2-3 魔法函数一览

    还是那句:python的魔法函数都已经提供好了的,我们不能够随便取定义我们的魔法函数。 到底python给我们提供...

  • Python进阶2

    魔法函数 引言 魔法函数是Python中定义的,以__开头,__结尾,形如__func__()的函数,一般使用已经...

  • python——魔法函数

    python中常见的内置类型 什么是魔法函数? python的魔法函数总被双下划线包围,它们可以给你的类增加特殊的...

  • Jupyter Notebook魔法函数

    魔法函数 使用魔法函数可以简单的实现一些单纯python要很麻烦才能实现的功能。 一些常用魔法函数的示例: 注意这...

  • python魔法函数

    什么是魔法函数? 1)在python中以双下滑线开头并且以双下滑线结尾的函数 2)魔法函数可以随意定义某个类...

  • Python:魔法函数

    1. 简介 1.1. 什么是魔法方法 Python是一门追求简单、高效的语言,它并不像某些语言如Java、C++等...

  • python魔法函数

    1.__init __ ;__new __ ; __del ____init __ 方法是Python最基本...

  • 4-12 with上下文协议

    with上下文的实行是通过Python内置的魔法函数实现的

网友评论

    本文标题:python魔法函数

    本文链接:https://www.haomeiwen.com/subject/moxxvqtx.html