python析构函数用法及注意事项
作者:小妮浅浅 发布时间:2023-01-25 19:53:11
标签:python,析构函数
1、主动删除对象调用del 对象;程序运行结束后,python也会自动进行删除其他的对象。
class Animal:
def __del__(self):
print("销毁对象{0}".format(self))
cat = Animal()
cat2 = Animal()
del cat2
print("程序结束")
2、如果重写子类的del方法,则必须显式调用父类的del方法,这样才能保证在回收子类对象时,其占用的资源(可能包含继承自父类的部分资源)能被彻底释放。
class Animal:
def __del__(self):
print("调用父类 __del__() 方法")
class Bird(Animal):
def __del__(self):
# super(Bird,self).__del__() #方法1:显示调用父类的del方法
print("调用子类 __del__() 方法")
cat = Bird()
#del cat #只能调用子类里面的__del__
#super(Bird,cat).__del__() #方法2:显示调用父类的__del__
函数实例扩展:
#coding=utf-8
'''
魔法方法,被__双下划线所包围
在适当的时候自动被调用
'''
#构造init、析构del
class Rectangle:
def __init__(self,x,y):
self.x = x
self.y = y
print('构造')
'''
del析构函数,并不是在del a对象的时候就会调用该析构函数
只有当该对象的引用计数为0时才会调用析构函数,回收资源
析构函数被python的垃圾回收器销毁的时候调用。当某一个对象没有被引用时,垃圾回收器自动回收资源,调用析构函数
'''
def __del__(self):
print('析构')
def getPeri(self):
return (self.x + self.y)*2
def getArea(self):
return self.x * self.y
if __name__ == '__main__':
rect = Rectangle(3,4)
# a = rect.getArea()
# b = rect.getPeri()
# print(a,b)
rect1 = rect
del rect1
# del rect
while 1:
pass
来源:https://www.py.cn/jishu/jichu/31132.html


猜你喜欢
- Go语言里的集合一般会用map[T]bool这种形式来表示,T代表元素类型。集合用map类型来表示虽然非常灵活,但我们可以以一种更好的形式来
- write2vin 的 PPT原文路宛兮写的简介:本文解释了以下问题: 1.什么是用户体验? 2.谁发明了这个术语?他想表达什么意思? 3.
- 1.var、let、const简介 ECMAS
- 阅读上一篇教程:WEB2.0网页制作标准教程(10)自适应高度布局初步搭建起来,我开始填充里面的内容。首先是定义logo图片:样式表:#lo
- 本文介绍了vue 模拟后台数据(加载本地json文件)调试,分享给大家,也给自己留个笔记首先创建一个本地json文件,放在项目中如下{ &q
- 源码:#!/usr/bin/env python# -*- coding:utf-8 -*- import turtleimport tim
- 今天我们用python和pygame实现一个乒乓球的小游戏,或者叫弹珠球游戏。笑脸乒乓球游戏功能介绍乒乓球游戏功能如下:乒乓球从屏幕上方落下
- 一.安装python进入python官网,点击依次点击红色选中部分,开始下载。。。下载完成后,打开安装包,如下有两个选项,一个是立即安装,另
- 如下所示:#!/usr/bin/env pythonimport osimport sysclass CConsole: M_MAP_COL
- 一、概述索引太少,查询效率低;索引太多程序性能受到影响,索引的使用应该贴合实际情况。Innodb 支持的索引包括:全文检索,使用倒排索引哈希
- int 数字类型class int(object): """ int(x=0) -&g
- 前言这是个在写计算机网络课设的时候碰到的问题,卡了我一天,所以总结一下。其实在之前就有用requests写过python爬虫,但是计算机网络
- 条件查询范围查询模糊查询条件查询all()返回全部结果集filter(**kwargs)返回满足参数定义的结果集 例如Entry.objec
- 前言Python处理Excel的包是openpyxl,其支持操作的文件类型为:.xlsx, .xlsm, .xltx, .xltmpip i
- 本文介绍了Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录,分享给大家,具体如下:Python 2.7I
- 1. IO多路复用O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息
- 直接奔入主题看下面pywebio程序,实现了Python的简陋在线编辑器from pywebio.input import *from py
- 背景总结统计工作中几个常用用法在python统计函数库scipy.stats的使用范例。正态分布以正态分布的常见需求为例了解scipy.st
- 解决方案:1、在MY.INI文件中的 [mysqld] 中增加一行tmpdir="D:/MySQL/data/"修改后,
- 使用实例:object.CreateTextFile(filename[, overwrite[, unicode]])其中object是必