【笔记】__del__()析构方法和__call__()方法
__del__()析构方法__del__方法称为析构方法,用于实现对象被销毁是所需的操作。比如释放对象所占用的资源,例如:打开的文件资源、网络连接等
Python实现自动的垃圾回收,当对象没有被引用时(引用计数是0)由垃圾回收器调用__del__方法。我们也可以通过del语句删除对象,从而保证调用__del__方法。
系统会自动提供__del__方法,一般不需要自定义析构方法。
class Person:
def __del__(self):
print('销毁对象{0}'.format(self))
s1 = Person()
s2 = Person()
del s2
print("程序结束")
运行结果:销毁对象<__main__.Person object at 0x000002192EFA4A90>
程序结束
销毁对象<__main__.Person object at 0x000002192EFA4AC0>
这是测试一下析构函数,其中第一个销毁对象时销毁的s2,第二个是s1。
__call__()方法
定义__call__()方法的对象,称为“可调用对象”,即该对象可以像函数一样使用“小括号“被调用。
class SalaryAccount():
'''工资计算'''
def __call__(self,salary):
yearSalary = salary*12
daySalary = salary//22.5
hourSalary = daySalary//8
return dict(yearSalary=yearSalary,monthSalary=salary,daySalary=daySalary,hourSalary=hourSalary)
s = SalaryAccount()
print(s(10000))
运行结果:{'yearSalary': 120000, 'monthSalary': 10000, 'daySalary': 444.0, 'hourSalary': 55.0}
这是定义了一个__call__()方法,使得对象可以直接调用。
页:
[1]