python面向对象-类的内置方法(补充)

__del__()

当销毁对象时,会先调用该方法(相当于C++的析构函数)
销毁对象的方式:

  1. 手动销毁,调用del 实例
  2. python的内存管理机制
class Phone:
    def __init__(self,name):
        self.__name=name

    def __del__(self):
        print("调用del方法")

huawei=Phone("华为")

显示结果如下:

调用del方法

当程序执行结束后,python会自动销毁对象

手动销毁:

huawei=Phone("华为")
del huawei
print(huawei)

显示结果如下:

调用del方法
Traceback (most recent call last):
  File "phone5.py", line 19, in <module>
    print(huawei)
NameError: name 'huawei' is not defined

错误提示huawei对象不存在,说明del huawei确实起作用了,已经把对象销毁了

__call__()

把实例对象作为函数调用

class Phone:
    def __init__(self,name):
        self.__name=name

    def __call__(self):
        print("调用call方法")

huawei=Phone("华为")

#调用的是__call__()方法
huawei()

原文出处:/show_1EF2Lp3VClWB.html