当前位置: 首页 > 网络知识

Python基础入门学习笔记 041 魔法方法:构造和析构

时间:2026-01-29 09:25:53

__init__(self[, ...])方法是类在实例化成对象的时候首先会调用的一个方法

1 >>> class Rectangle: 2 def __init__(self,x,y): 3 self.x = x 4 self.y = y 5 def getPeri(self): 6 return (self.x + self.y) * 2 7 def getArea(self): 8 return self.x * self.y 9 >>> rect = Rectangle(5,2) 10 >>> rect.getPeri() 11 14 12 >>> rect.getArea() 13 10

注:__init__()方法的返回值一定是None

其实,__new__()才是在一个对象实例化时候所调用的第一个方法,它的第一个参数是这个类(cla),而其他的参数会直接传递给__init__()方法

__new__(cls[, ...])

1 >>> class CapStr(str): 2 def __new__(cls,string): 3 string = string.upper() 4 return str.__new__(cls,string) 5 6 7 >>> a = CapStr('hello world') 8 >>> a 9 'HELLO WORLD

__del__(self) 当对象将要被销毁的时候,这个方法就会被调用。但要注意,并非del x就相当于调用x.__del__(),__del__()方法是当垃圾回收机制回收这个对象的时候才调用的。

1 >>> class C: 2 def __init__(self): 3 print('我是__init__方法,我被调用了...') 4 def __del__(self): 5 print('我是__del__方法,我被调用l...') 6 7 8 >>> c1 = C() #创建对象c1 9 我是__init__方法,我被调用了... 10 >>> c2 = c1 11 >>> c3 = c2 12 >>> del c1 13 >>> del c2 14 >>> del c3 #删除c3时,对象c1才会彻底被删除(即没有标签指向对象c1时,其才会被回收) 15 我是__del__方法,我被调用l...



上一篇:Python基础入门学习笔记 049 乱入:生成器
下一篇:Python基础入门学习笔记 066 GUI的终极选择:Tkinter3
python
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素