资讯详情

__del__方法和__call__方法

  1. __del__该方法,又称分析方法。当对象未被引用时,垃圾回收器将被调用__del__销毁对象的方法
class Student:  def __del__(self):   print({}.format(self)) s1=Student() s2=Student() del s2 print(程序结束) 

运行结果: <.Student object at 0x0000029A6D69A760>被销毁 程序结束 <.Student object at 0x0000029A6D69A160>被销毁 分析步骤:del s2先删除了s对象,后面操作print,程序结束,s1不引用,直接通过垃圾回收器调用__del__方法来使得s1被销毁。

ps:假如还不懂,再看一个例子,如下:

class Student:  def __del__(self):   print({}.format(self)) s1=Student() s2=Student() print(程序结束) 

运行结果: 程序结束 <.Student object at 0x0000022451FDA160>被销毁 <.Student object at 0x0000022451FDA760>被销毁 分析步骤:先操作print,程序结束,s1、s均未引用,依次销毁

  1. __call__方法:使对象像函数一样被调用
class SalaryAccount:  def __init__(self,monthSa):   self.montSa=monthSa     def __call__(self, monthSalary):         print(算工资)         yearSalary=monthSalary*12         return dict(yearSalary=yearSalary) s=SalaryAccount(5000) print(s(5000))  #这里s(5000)实际上是调用了__call__方法
print('年工资为:{}'.format(s.montSa*12))

运行结果: 算工资啦 {‘yearSalary’: 60000} 年工资为:60000

ps:函数的调用

def SalaryAccount(a):
	return a*12
print(SalaryAccount(5000))

运行结果: 60000

标签: a160贴片三极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台