python析构函数

class Test(object):
    def __init__(self, name):
        self.name = name
        print(‘这是构造函数‘)

    def say_hi(self):
        print(‘hell, %s‘ % self.name)

    def __del__(self):
        print(‘这是析构函数‘)

obj = Test(‘bigberg‘)

obj.say_hi()

del obj

#输出
  这是构造函数

  hello bigberg

  这是析构函数

  

构造函数

  用于初始化类的内容部状态,Python提供的构造函数式 __init__(),也就是当该类被实例化的时候就会执行该函数,__init__()方法是可选的,如果不提供,Python 会给出默认的__init__方法。

析构函数

  “__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间。  

  __del__()也是可选的,如果不提供,则Python 会在后台提供默认析构函数

  如果要显式的调用析构函数,可以使用del关键字: del obj

垃圾回收机制  

s = ‘123‘
print(‘del...running‘)
del s

  当我们用del删除一个对象时,其实并没有直接清除该对象的内存空间。Python 采用‘引用计数’ 的算法方式来处理回收,即:当某个对象在其作用域内不再被其他对象引用的时候,Python 就自动清除对象。

  而析构函数 __del__()在引用的时候就会自动清除被删除对象的内存空间。

时间: 2024-11-06 23:48:47

python析构函数的相关文章

Python 构造函数、 Python 析构函数、Python 垃圾回收机制

构造函数与析构函数 构造函数: 用于初始化类的内容部状态,Python提供的构造函数式 __init__(); __init__()方法是可选的,如果不提供,Python 会给出默认的__init__方法 一般数据的获取需要定义的get和set方法 析构函数: 用于释放对象占用的资源,Python 提供的析构函数式__del__(); __del__()也是可选的,如果不提供,则Python 会在后台提供默认析构函数 如果要显式的调用析构函数,可以使用del关键字,方式如下: del对象名 垃圾

python 析构函数 实例析构 类析构

#!python# -*- coding:utf-8 -*-# 目的:通过单例实现客户端调用sdk时的批处理 # 参考:# {# Python单例模式(Singleton)的N种实现 - 知乎# https://zhuanlan.zhihu.com/p/37534850 # 设计模式(Python)-单例模式 - 简书# https://www.jianshu.com/p/ec6589e02e2f # PythonDecoratorLibrary - Python Wiki# https://w

python中的构造函数和构造函数和析构函数的作用

构造函数和构造函数和析构函数都属于python中的特殊方法 其中的"__del__"就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间

python中的构造函数和析构函数

python中的特殊方法,其中两个,构造函数和析构函数的作用: 比说“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这个函数里面.如下程序: 其中的“__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间. 待深入……………………

(一)Python入门-6面向对象编程:04__del__方法(析构函数)和垃圾回收机制-__call__方法和可调用对象

一:__del__方法(析构函数)和垃圾回收机制 __del__方法称为“析构方法”,用于实现对象被销毁时所需的操作.比如:释放对象 占用的资源,例如:打开的文件资源.网络连接等. Python实现自动的垃圾回收,当对象没有被引用时(引用计数为 0),由垃圾回收器 调用__del__方法. 我们也可以通过del 语句删除对象,从而保证调用__del__方法. 系统会自动提供__del__方法,一般不需要自定义析构方法. [操作] #析构函数 class Person: def __del__(s

python 之简单聊聊 析构函数和特殊的__call__方法

# -*- coding: utf-8 -*- """ Created on Sun Nov 13 23:19:03 2016 @author: toby """ #知识点:析构函数和特殊的__call__方法 ''' 析够函数: 其中的"__del__"就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数, 另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这 样可以用来释放内存空

使用Python定义构造函数和析构函数

#定义类 class Student: #名称 name="张三"; #构造方法 def __init__(self): print ("----构造方法被调用----") #析构方法 def __del__(self): print("----析构方法被调用------") #自我介绍的方法 def show(self): print("你好:我是%s"%self.name) #实例化对象 zhangsan= Student

Python学习--第七周

本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典类vs新式类 把下面代码用python2 和python3都执行一下 1 #_*_coding:utf-8_*_ 2 3 4 class A: 5 def __init__(self): 6 self.n = 'A' 7 8 class B(A): 9 # def __init__(self): 1

Python 面向对象class(2)

Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程. 接下来我们先来简单的了解下面向对象的一些基本特征. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定