python 面向对象 析构方法】的更多相关文章

实例化但从来没有调用他,就浪费了,就应该自动删除它 这个实例一直存在内存里 python有个垃圾自动回收机制 , 每段时间会自动刷新整个内存,把内存垃圾东西删除   析构函数: 在实例释放.销毁的时候自动执行的,通常用于做一些收尾工作, 如关闭一些数据库连接,关闭打开的临时文件   class role(): # 传参数 def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化…
Python 的特殊方法,两边带双下划线的方法. 比如:__init__(self, ...).__del__(self) 1.__init__(self,...) : 构造方法 __init__(self, ...)  构造方法,这个方法在创建对象时,自动触发执行.实例化类格式: 类名() class Phone: def __init__(self, brand, year): self.brand = brand self.year = year print("执行 __init__ 方法…
一.描述符 在 面向对象 编程中 定义一个(没有定义方法)类:class person , 在这个类里面,有name,age, heigth, weight,等等属性, 这个类就可以看作一个对 person 的描述符,而具体的实例则是具体的“被描述物”. 而在python中,描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议. __get__():调用一个属性时,触发 __set__():为一个属性赋…
普通方法要执行类里面的方法是通过对象触发的 触发的时候把自己赋值给self 类方法 vim day7-7.py #!/usr/bin/python # -*- coding:utf-8 -*- class Province(object): def __init__(self,name): pass def f1(self): pass @classmethod def f2(cls): #类方法 print cls pass def f3(self): pass #obj = Province…
类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类.“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”,当你需要用时,用“类”的定义来创造一个具体的例子. 用类的定义来创建一个实例,就叫做类的实例化.实例化过程就是调用类的构造函数,完成该实例的数据分配 下面用一个洗衣机的例子来演示: 这个是一个简单的手动洗衣机 w 实例化了Washer类: #class Washer: class Washer:#定义…
__new__ 方法 使用 类名() 创建对象时,Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法,主要作用有两个: 1) 在内存中为对象 分配空间 2) 返回 对象的引用 Python 的解释器获得对象的 引用 后,将引用作为 第一个参数,传递给 __init__ 方法 _new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方…
Python中的class可以定义许多定制方法,可以让我们方便的生成特定的类. 我们之前介绍了__slots__.__len__(),python中还有许多这样的特殊函数: __str__ >>> class Student(object): ... def __init__(self,name): ... self.name = name ... >>> print(Student('wc')) <__main__.Student object at 0x035…
鸭子类型 如果看起来像.叫声像而且走起路来像鸭子,那么它就是鸭子’.python程序员通常根据这种行为来编写程序.例如,如果想编写现有对象的自定义版本,可以继承该对象,也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度. 例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法 例2:序列类型有多种形态:字符串,列表,元组,但他们直接没有直接的继承关系 #二者都像鸭子,二者看起来都像文件,因而就可以当…
#!/bin/python3 # -*-coding:utf-8 -*- import math import numpy as np #定义一个欧拉算法的类,从而实现不同步长的引用 class Euler: y_list=[] #定义一个空列表来实现y值的存储 def __init__(self, h=0.1, y0=1,): #初始化Euler类的方法 self.h = h self.y0 = y0 self.y = y0 self.n = 1/h self.y_list = Euler.y…
class Foo: def __getitem__(self, item): print("getitem") return self.__dict__[item] def __setitem__(self, key, value): print("setitem") self.__dict__[key]=value def __delitem__(self, key): print("delitem") self.__dict__.pop(k…