Python之析构方法

"""
析构方法:
释放内存,做释放内存前的准备工作

触发机制:析构方法会在对象被销毁时自动触发
作用:关闭一些开发的资源
注意:是对象被销毁时触发了这个方法,而不是这个方法销毁了对象

对象会在哪些情况下被销毁?
1.当程序执行完毕,内存中的所有资源都会被销毁释放
2.使用del 删除时
3.对象不再被引用时,会自动销毁


创建实例对象时自动被调用:
__new__:创建实例对象
Animal monkey = new Animal()
__init__:初始化数据属性
__del__:析构方法
"""
class Animal:
    """初始化数据属性的方法"""
    def __init__(self,gender,kinds,legs):
        print("初始化方法被调用")
        self.gender = gender
        self.kinds = kinds
        self.legs = legs

    def eat(self):
        print(f"{self.kinds}eating...")

    def __del__(self):
        print("析构方法被调用")

monkey = Animal("wukongSun","猴赛类",4)
monkey.eat()

#3.对象不再被引用时,会自动销毁
Animal("haha","gg",6)
print("析构方法被调用,,,,")
"""
open().close()
通过open().close(),释放open函数的内存
"""
class Open:
    def __init__(self,filePath,mode="r",encode="utf-8"):
        self.file = open(filePath,mode=mode,encoding=encode)

    def write(self):
        temp = input("请输入:")
        self.file.write(temp)

    def __del__(self):
        print("文件流即将关闭,析构方法被调用")
        self.file.close()
#创建了一个实例对象(文件流file)
file = Open("a.txt","w")
file.write()
class Car:
    def __init__(self,brand):
        self.brand = brand
        print(f"{self.brand}被创建")

    def __del__(self):
        print(f"{self.brand}被销毁")


 #1.实例化后调用和销毁的顺序
# baoma = Car("宝马")
# lanbojini = Car("兰博基尼")
# falali = Car("法拉利")

"""
宝马被创建
兰博基尼被创建
法拉利被创建
宝马被销毁
兰博基尼被销毁
法拉利被销毁

"""
#1.实例化后没有被调用和销毁的顺序
Car("宝马")
Car("兰博基尼")
Car("法拉利")

"""
宝马被创建
宝马被销毁
兰博基尼被创建
兰博基尼被销毁
法拉利被创建
法拉利被销毁

"""
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值