zoukankan      html  css  js  c++  java
  • __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)
    

      

  • 相关阅读:
    A1039 Course List for Student (25 分)
    A1101 Quick Sort (25 分)
    日常笔记6C++标准模板库(STL)用法介绍实例
    A1093 Count PAT's (25 分)
    A1029 Median (25 分)
    A1089 Insert or Merge (25 分)
    A1044 Shopping in Mars (25 分)
    js 验证
    根据string获取对应类型的对应属性
    HTML 只能输入数字
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/10920650.html
Copyright © 2011-2022 走看看