Python的三个魔法函数

127 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情

Python的三个魔法函数

什么是Python的魔法函数呢?我认为魔法函数就像钩子函数,在一个对象的行为发生变化的时候自动调用的方法,目的就是用来增强类的功能,有点类似AOP的原理,下面我将介绍几个魔法函数,让你有Python的魔法函数有个简单的认识。

所有的魔法函数都是以双下划线开始,并以双下划线结尾,中间是函数名

初始化对象函数

初始化对象的函数的功能就是初始化对象,在创建对象的时候自动调用,我们同样举个例子来说明一下

class Ikun():
    def __init__(self, hair, age):
        self.hair = hair
        self.age = age

    def print_info(self):
        print(f'ikun的头发是{self.width}, ikun的年龄是{self.height}')

ikun = Ikun('中分', 25)
ikun.print_info()

这里的__init__函数就是初始化对象的函数,我们在创建对象的时候传入参数,__init__函数自动为我们填充属性。这里的print_info()函数是自定义的函数,打印出对象的属性值相关内容。

删除函数

删除函数是在对象被删除的时候自动调用的函数,同样举个例子

class Ikun():
    def __del__(self):
        print(f'{self}ikun被删除了')
ikun = Ikun()

del ikun

通过调用del 删除对象,会自动调用__del__函数,进行相应的操作。

字符串函数

我们知道调用print()函数会输出对象在内存中的地址信息,而实用字符串函数后返回的是函数返回的数据。听起来一脸懵逼,举个例子就一目了然了

class Ikun():
    def __init__(self, hair, age):
        self.hair = hair
        self.age = age

    def __str__(self):
        return '我是练习时长两年半的个人练习生'
ikun = Ikun('中分', 25)

print(ikun)

小结

行文至此,让我们总结一下,这篇文章我们主要讲了Python的三个魔法函数,分别是初始化对象函数、删除对象的函数和字符串的函数,除此以外还有其他的魔法函数,这里只是简单一说,带你入门,我们需要记住的是魔法函数是以双下划线开头和结尾,通过这一特性可以将我们自定义的函数区分开。