开启掘金成长之旅!这是我参与「掘金日新计划 · 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的三个魔法函数,分别是初始化对象函数、删除对象的函数和字符串的函数,除此以外还有其他的魔法函数,这里只是简单一说,带你入门,我们需要记住的是魔法函数是以双下划线开头和结尾,通过这一特性可以将我们自定义的函数区分开。