python魔法方法和普通方法的区别_python之魔法一方法构造和析构

本文介绍了Python中的三个关键魔法方法:`__init__`、`__new__`和`__del__`。`__init__`在实例化时自动调用,用于初始化对象;`__new__`在`__init__`之前被调用,通常用于创建实例;`__del__`在对象即将被销毁时自动调用,是垃圾回收机制的一部分。通过示例解释了这些方法的工作原理和使用场景。
摘要由CSDN通过智能技术生成

1、魔法方法总是被双下划线保卫,例如__init__

2、魔法方法是面向对象的python的一切,如果你不知道魔法方法,说明你还没能意识到面向对象的python的强大

3、魔法方法的‘魔力’体现在它们总能够在适当的时候被自动调用

一、__init__(self [,….])  魔法方法,类实例化自动调用

>>> class Rectangle: #求矩形的面积周长

def __init__(self,x,y): #那么实例化的时候我们就需要他的长和宽

self.x = x #这里注意的是 __init__(self) 的返回值永远是Nona,不要试图去更改他

self.y = y

def getperi(self):

return (self.x + self.y)*2

def getarea(self):

return self.x * self.y

>>> rect =Rectangle(3,4)

>>> rect.getarea()

12

>>> rect.getperi()

14

>>>

二、__new__(cls [,….]) 其实在__init__(self)之前调用

1、__new__(cls[,…])它跟其他的魔法方法不同第一个参数不是self.而是cls。也就是这个类

它在__init__之前被调用,如果它的cls后面有参数,它会原封不动的传给__init__的方法。

2、__new__方法需要一个实例对象作为返回值,通常cls这个类的实例对象。当然也可以返回其他类的实例对象。

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值