析构方法(析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数每每用来作“清理善后” 的工做(例如在创建对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)),当对象在内存中被释放时,自动触发执行。python
注:若是产生的对象仅仅只是python程序级别的(用户级),那么无需定义__del__,若是产生的对象的同时还会向操做系统发起系统调用,即一个对象有用户级与内核级两种资源,好比(打开一个文件,建立一个数据库连接),则必须在清除对象的同时回收系统资源,这就用到了__del__。数据库
import time class Foll: def __del__(self): print("清理尾巴工做开始") f = Foll() print("程序还在运行呢.....") time.sleep(2) print("程序运行结束了....."). # 应用场景、例如打开了文件,在程序结束时关闭文件。
判断对象是否包含对应的属性和方法,返回True、False。ide
class A(object): def __init__(self, a, b, c): self.a = a self.b = b self.c = c def abc(self): pass a = A("a", "b", 'c') print(hasattr(a, 'a')) # True print(hasattr(a, 'abc')) # Tru print(hasattr(a, 'as')) # False
通常用来经过字符串查找对象对应的方法和属性。函数
getattr(object, name, [default]) # object -- 对象。 # name -- 字符串,对象属性。 # default -- 默认返回值,若是不提供该参数,在没有对应属性时,将触发 AttributeError。
更新中...............spa