zoukankan      html  css  js  c++  java
  • 面向对象高级用法

    __del__

      析构方法(析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)),当对象在内存中被释放时,自动触发执行。

      注:如果产生的对象仅仅只是python程序级别的(用户级),那么无需定义__del__,如果产生的对象的同时还会向操作系统发起系统调用,即一个对象有用户级与内核级两种资源,比如(打开一个文件,创建一个数据库链接),则必须在清除对象的同时回收系统资源,这就用到了__del__。

    import time
    class Foll:
    
        def __del__(self):
            print("清理尾巴工作开始")
            
    f = Foll()
    print("程序还在运行呢.....")
    time.sleep(2)
    print("程序运行结束了.....").
    
    # 应用场景、例如打开了文件,在程序结束时关闭文件。
    del

    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
    hasattr

    getattr()

    一般用来通过字符串查找对象对应的方法和属性。

    getattr(object, name, [default])
    # object -- 对象。
    # name -- 字符串,对象属性。
    # default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
    getattr

    更新中...............

  • 相关阅读:
    Cpp -- static变量不属于类的实例
    单例模式
    WebView android
    网络编程之一
    初涉json
    初涉XML
    关于JSON的GSON
    网络编程(一)
    硬件51
    重拾C之数据
  • 原文地址:https://www.cnblogs.com/Dream-huang/p/10832795.html
Copyright © 2011-2022 走看看