Python中的一些魔法方法

本文介绍了Python中的三种关键魔法方法:__init__用于对象初始化,__str__控制对象打印格式,__del__在对象销毁时执行清理。通过实例演示了如何利用这些方法提升代码可读性和内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      今天我们来介绍一些Python中的魔法方法。

      在Python中,所有以 __ 双下划线包起来的⽅法,都统称为 Magic Method ,即魔法⽅法。魔法⽅法是系统提供的⽅法,⽤户需重新实现它,一般情况下⽆需⼿动调⽤,在合适时候⾃动会调⽤。

一、__init__()

__init__() ⽅法叫做对象的初始化⽅法,创建对象的时候,实例化对象,在创建⼀个对象时会被⾃动调⽤,不需要⼿动调⽤。

__init__() ⽅法的作⽤:添加属性

举个栗子:

class Pet:

    def __init__(self,name,age):

        self.name = name

        self.age = age

说明:设置的⾃定义参数必须和创建对象时传递的参数位置和数量保持⼀致,同时可以设置参数,为默认属性提供不同的初始值。

 

二、__str__()

类实例化后,如果直接 print 打印对象,会看到创建出来的对象在内存中的地址。这样可能会暴露一些我们不想让程序使用者了解的信息。而当使⽤ print(对象变量名) 输出对象的时候,只要类中定义了 __str__() ⽅法,就会打印 __str__() ⽅法返回值。需要注意的是__str__() ⽅法的返回值必须是字符串类型

再举个栗子:

class Pet:

    def __init__(self, name, age):

        self.name = name

        self.age = age

 

    def func1(self):

        print('lovepython')

 

    # __str__返回格式化字符串       

    def __str__(self):

        return f'{self.name} and {self.age} are hided'

 

 

cat = Pet('喵喵', 12)

print(cat)

运行结果为:

喵喵 and 12 are hided

 

三、__del__()

在对象的⽣命周期结束(对象销毁)时, __del__() ⽅法会⾃动被调⽤,做⼀些清理⼯作。

最后一个栗子:

class Thelast:

    def __del__(self):

        print('清理工作')

 

# 类外定义函数func

def func():

    thelast = Thelast()

    print('准备清理')

 

 

func()

运行结果为:

准备清理

清理工作

上述func()在调用时,先创建了实例化对象thelast,接着向控制台输出'准备清理',函数结束释放内存时,对象thelast被销毁,方法__del__被自动调用。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值