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
'''
python 面向对象 析构方法的更多相关文章
- Python 面向对象 特殊方法(魔法方法)
		
Python 的特殊方法,两边带双下划线的方法. 比如:__init__(self, ...).__del__(self) 1.__init__(self,...) : 构造方法 __init__(s ...
 - python面向对象魔术方法补充
		
一.描述符 在 面向对象 编程中 定义一个(没有定义方法)类:class person , 在这个类里面,有name,age, heigth, weight,等等属性, 这个类就可以看作一个对 per ...
 - Python面向对象之方法
		
普通方法要执行类里面的方法是通过对象触发的 触发的时候把自己赋值给self 类方法 vim day7-7.py #!/usr/bin/python # -*- coding:utf-8 -*- cla ...
 - python面向对象-1方法、构造函数
		
类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类.“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”,当 ...
 - [Python]python面向对象 __new__方法及单例设计
		
__new__ 方法 使用 类名() 创建对象时,Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法,主 ...
 - Python面向对象-定制方法
		
Python中的class可以定义许多定制方法,可以让我们方便的生成特定的类. 我们之前介绍了__slots__.__len__(),python中还有许多这样的特殊函数: __str__ >& ...
 - Python面向对象 | 鸭子方法
		
鸭子类型 如果看起来像.叫声像而且走起路来像鸭子,那么它就是鸭子’.python程序员通常根据这种行为来编写程序.例如,如果想编写现有对象的自定义版本,可以继承该对象,也可以创建一个外观和行为像,但与 ...
 - 用python面向对象的方法实现欧拉算法和龙格库塔算法
		
#!/bin/python3 # -*-coding:utf-8 -*- import math import numpy as np #定义一个欧拉算法的类,从而实现不同步长的引用 class Eu ...
 - python面向对象--item方法
		
class Foo: def __getitem__(self, item): print("getitem") return self.__dict__[item] def __ ...
 
随机推荐
- JBuilder+struts一个常见异常
			
[org.apache.commons.digester.Digester]-[ERROR] Parse Error at line 3 column 22: The content of eleme ...
 - JWNL的配置使用
			
JWNL是什么? JWNL is an API for accessing WordNet-style relational dictionaries. It also provides functi ...
 - 【大数据系列】hadoop命令指导官方文档翻译
			
Hadoop Commands Guide Overview Shell Options Generic Options User Commands archive checknative class ...
 - C#TreeView节点选中后失去焦点时改变节点背景色
			
C#TreeView节点选中后失去焦点时改变节点背景色 在使用TreeView控件时候,单击一个节点,当鼠标聚焦到别的地方的时候,之前点击的这个节点就看不清楚了 举例截图 单击后 ...
 - EGL 1.0 学习笔记
			
http://hi.baidu.com/leo_xxx/item/b01b1fc29abff355ac00ef5c 基本概念 EGL是OpenGL ES与本地Window系统之间的桥梁.EGL创建渲染 ...
 - 外网电脑配置8G运行内存,运行Android Studio,速度很轻松
			
Win 7系统 之前RAM是 4 G,运行Android studio ,再运行浏览器或办公软件时卡的一比.再插入一个 4G内存条,总共8G时,速度嗖的一下就上来了.
 - 深入学习Make命令和Makefile(下)
			
https://www.zybuluo.com/lishuhuakai/note/209300 make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够根据程序中模块的修改情况 ...
 - laravel调用sql server存储过程并取得ReturnValue
			
alter proc [dbo].[aaa]( @AgencyID int,--代理商ID @AdminID int --结算操作人ID(管理员ID))asbegin select ...
 - std::u32string conversion to/from std::string and std::u16string
			
I need to convert between UTF-8, UTF-16 and UTF-32 for different API's/modules and since I know have ...
 - Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】
			
什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用 ...