__del__()
当销毁对象时,会先调用该方法(相当于C++的析构函数)
销毁对象的方式:
- 手动销毁,调用
del 实例 - 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()