我是靠谱客的博主 故意世界,最近开发中收集的这篇文章主要介绍python 面向对象 析构方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

实例化但从来没有调用他,就浪费了,就应该自动删除它
这个实例一直存在内存里

 python有个垃圾自动回收机制 , 每段时间会自动刷新整个内存,把内存垃圾东西删除
 
析构函数: 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 
    如关闭一些数据库连接,关闭打开的临时文件
 
class role(): # 传参数



    def __init__(self,name,role,weapon,life_value=100,moneny=15000):
        # 构造函数
        # 实例化过程中做一些类的初始化工作
        # 成员属性
        self.name = name
        self.role = role
        self.weapon = weapon
        self.life_value = life_value
        self.moneny = moneny


    def shot(self):  # 类的方法,功能(动态属性)
        print("shotting")


    def got_shot(self):
        print("on,%s got shoot..." % self.name)

    def buy_gun(self,gun_name):
        print("%s just bought %s" %(self.name,gun_name))
        self.weapon = gun_name

    '''
    析构函数: 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 
    如关闭一些数据库连接,关闭打开的临时文件
    '''
    def __del__(self):
        print("del....")




b1 = role('mike','警察','AK47')

# 实例化但从来没有调用他,就浪费了,就应该自动删除它
# 这个实例一直存在内存里
# python有个垃圾自动回收机制 , 每段时间会自动刷新整个内存,把内存垃圾东西删除



b1.shot()

# 删除变量
del b1

import time
time.sleep(2)
b1.shot()

'''
shotting
del....

删除了变量了
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/ss/SSS/day6/析构方法.py", line 55, in <module>
    b1.shot()
NameError: name 'b1' is not defined
'''
 
 

 

 
 
 

 

 

 

 

 

转载于:https://www.cnblogs.com/mingerlcm/p/8423387.html

最后

以上就是故意世界为你收集整理的python 面向对象 析构方法的全部内容,希望文章能够帮你解决python 面向对象 析构方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部