__del__ 析构方法 __init__ 构造方法

# ### __del__ 析构方法  __init__ 构造方法
‘‘‘
	触发时机:当对象被内存回收的时候自动触发[1.页面执行完毕回收所有变量 2.所有对象被del的时候]
    功能:对象使用完毕后资源回收
	参数:一个self接受对象
	返回值:无
‘‘‘
class LangDog():
	def __init__(self,name):
		self.name = name

	def eat(self,something):
		print("可爱的小狼{},喜欢吃{}".format(self.name,something))

	def __del__(self):
		print("__del__方法被触发")

# (1) 1.页面执行完毕回收所有变量
obj = LangDog("詹姆斯·狗蛋")
obj.eat("屎")
print("<===>")
# (2) 2.所有对象被del的时候
‘‘‘
只有当所有指向该对象的变量都删除的时候,才算真正的删除该对象
‘‘‘

obj2 = obj
print("<==start===>")
del obj
del obj2
print("<==end===>")

# (3) 用类来模拟文件写的操作
# fp = open("ceshi111.txt",mode="w",encoding="utf-8")
# fp.write("sfdsdf")
# fp.close()

# fp = open("ceshi111.txt",mode="r",encoding="utf-8")
# res = fp.read()
# fp.close()
# print(res)

print("<=111==>")
import os
class MyFile():
	# 判断是否创建MyFile该对象
	def __new__(cls,filename):
		if os.path.exists(filename):
			return object.__new__(cls)
		return print("该文件不存在")

	# 产生文件对象
	def __init__(self,filename):
		self.fp = open(filename,mode="r",encoding="utf-8")

	# 读取文件
	def readfile(self):
		res = self.fp.read()
		return res

	def __del__(self):
		print(0)
		# 自动触发__del__ ,帮助我们关闭文件
		self.fp.close()

obj = MyFile("ceshi222.txt")
res = obj.readfile()
print(res)

  

原文地址:https://www.cnblogs.com/huangjiangyong/p/10920650.html

时间: 2024-10-13 13:59:50

__del__ 析构方法 __init__ 构造方法的相关文章

__del__() 析构方法和__call__() 方法

一:析构方法__del__(): 1 ''' 2 当对象在内存中被释放时,自动触发执行 3 不过一般不用我们释放,Python 解释器会自动释放 4 ''' 5 class DemoClass: 6 7 def __init__(self,name): 8 self.name = name 9 10 def __del__(self): 11 print("析构了") 12 13 14 if __name__ == "__main__": 15 demo = Dem

033.Python的__del__析构方法he__call__方法

一 __del__ 魔术方法(析构方法) 1.1 介绍 触发时机:当对象被内存回收的时候自动触发[1.页面执行完毕回收所有变量 2.所有对象被del的时候] 功能:对象使用完毕后资源回收 参数:一个self接受对象 返回值:无 1.2 页面执行完毕回收所有变量 class Plane(): def __init__(self,name): self.name = name def fly(self): print ("我的飞机是{}飞的很快".format(self.name)) de

Python构造器及析构器:__init__与__new__及__del__

__init__与__new__这两个魔法方法组成了Python类对象的构造器,在Python类实例化时,其实最先调用的不是__init__而是__new__.__new__是负责实例化对象的,而__init__是初始化操作.__del__是析构器,当Python对象的所有引用都不存在了(被del了),就会自动触发__del__执行. class CapStr(str): def __new__(cls, string): #此时string = 'i love you' cls是CapStr这

知识点:构造和析构方法 __new__ , __init__ , __del__

1:__new__ 类创建对象的一个执行的方法,一般不需要重写这个函数.当继承的类是不可变,但是又想修改该对象. 基本语法  def __new__(cls ,[args,]]) ####写一个将字母全部大写的类#### class Capstr(str): def __new__(cls , string): string = string.upper() return str.__new__(cls , string) print(Capstr("marian")) ####写一个

python面向对象析构方法-----&gt; __del__方法

1.什么时候用法析构方法. 在对象资源被释放的时候触发. 2.使用场景. 帮助清理资源,比如python解释器清理不掉的资源. 例子: class Foo: def __init__(self,x): self.x=x def __del__(self): #在对象资源被释放时触发 print('现在是__del__执行') f=Foo(100000) del f #这个步骤在释放资源,这个时候会触发函数中的__del__函数中定义的方法. print('====================

python的析构方法__del__

#!/usr/bin/env python # -*- coding: utf-8 -*- # File  : 析构方法del.py # Author: HuXianyong # Date  : 2018/7/9 class Foo:     # 初始化方法     # 创建完对象后会自动被调用     def __init__(self, name):         print('__init__方法被调用')         self.name = name     # 析构方法     

类的析构方法__del__

析构方法: 语法: class 类名: def __del__(self): ... 说明: 析构方法在对象被销毁时被自动调用 python建议不要在对象销毁时做任何事情,因为销毁的时间难以确定 class Car: def __init__(self, info): self.info = info print("汽车对象", info, "被创建") def __del__(self): print("汽车对象", self.info, &q

构造方法与析构方法区别

Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法.构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括没有void).另外,构造方法一般都应用 public 类型来说明,这样才能在程序任意的位置创建类的实例也就是对象.示例:下面是一个 Rectangle 类的构造方法,一个是带有两个参数,分别表示矩形的长和宽: 另一个是不带参数:public class Rectangle {

类的构造方法和析构方法和封装的目的和封装的做法+访问修饰符

一.封装的目的:为了让类更安全. 封装的做法: ①类里面的成员变量做为private ②使用成员方法来间接访问成员变量 ③在该方法里面加限制条件 注意:PHP类里面不允许出现同名方法. 二.访问修饰符 ①public:代表公有的,在任何地方都可以访问. ②protected:代表受保护的,只能在该类或该类的子类中访问. ③private:代表私有的,只能在该类中访问. 三.类的构造方法注意事项 ①构造方法名可以和类相同,也可以使用__construct();提倡时候后者. ②构造方法没有返回值.