• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python构造函数及解构函数介绍

Python构造函数及解构函数介绍

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python构造函数,python中的构造函数,python类的构造函数,python 构造方法,python构造矩阵等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

python 有一个相应的特殊解构器(destructor)方法名为__del__()。然而,由于python具有垃圾对象回收机制(靠引用计数),这个函数要直到该实例对象所有的引用都被清除掉后才会被执行。python中的解构器是在实例释放前提供特殊处理功能方法,它们通常没有被实现,因为实例很少被显式释放。

在下面的例子中,我们分别创建(并覆盖) __init__()和__del__()构造器及解构函数,然后,初始化类并给同样的对象很多别名。id()内建函数可用来确定引用同一对象的三个别名。最后一步是使用del语句清除所有的别名,显示何时调用了多少次解构器。
#!/usr/bin/env python
#coding=utf-8
 
class P():
    def __del__(self):
        pass
 
class C(P):
    def __init__(self):
        print 'initialized'
    def __del__(self):
        P.__del__(self)
        print 'deleted'
 
 
c1 = C()
c2 = c1
c3 = c1
 
print id(c1), id(c2), id(c3)
 
del c1
del c2
del c3
</div>

python没有提供任何内部机制来跟跟踪一个类有多少个实例被创建了,或者记录这些实例是什么东西。如果需要这些功能,可以显式加入一些代码到类定义或者__init__()和__del__()中去。最好的方式是使用一个静态成员来记录实例的个数。靠保存它们的引用来跟踪实例对象是很危险的,因为你必须合理管理这些引用,不然你的引用可能没办法释放(因为还有其他的引用)!看下面的例子:

class InstCt(object):
    count = 0
    def __init__(self):
        InstCt.count += 1
    def __del__(self):
        InstCt.count -= 1
    def howMany(self):
        return InstCt.count
 
a = InstCt()
b = InstCt()
print b.howMany()
print a.howMany()
del b
print a.howMany()
del a
print InstCt.count
</div>

所有输出:
initialized
4372150104 4372150104 4372150104
deleted
********************
2
2
1
0
</div>

</div>

您可能想查找下面的文章:

  • Python构造自定义方法来美化字典结构输出的示例
  • Python构造函数及解构函数介绍

相关文章

  • python实现的一个火车票转让信息采集器
  • python 装饰器功能以及函数参数使用介绍
  • python 正则表达式 概述及常用字符
  • 解析Mac OS下部署Pyhton的Django框架项目的过程
  • 详细解析Python中的变量的数据类型
  • python连接sql server乱码的解决方法
  • python去掉行尾的换行符方法
  • python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
  • Python的Django框架中消息通知的计数器实现教程
  • python装饰器与递归算法详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中实现字符串类型与字典类型相互转换的方法
    • Python程序设计入门(2)变量类型简介
    • 使用C#配合ArcGIS Engine进行地理信息系统开发
    • python处理xml文件的方法小结
    • python时间整形转标准格式的示例分享
    • Python求导数的方法
    • 简单掌握Python的Collections模块中counter结构的用法
    • Python中super()函数简介及用法分享
    • Python处理字符串之isspace()方法的使用
    • Python中函数的参数传递与可变长参数介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有