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