自定义内置方法来定制类的功能
1、__str__方法
在对象被打印时,自动触发,应该在该方法内采集与对象self有关的信息,然后拼成字符串返回
class People: def __init__(self,name,age): self.name=name self.age=age def __str__(self): print('======>') return '<name:%s age:%s>' %(self.name,self.age) obj=People('egon',18) obj1=People('alex',18) print(obj) # obj.__str__() # <name:egon age:18> print(obj.__str__()) # <name:egon age:18> # print(obj.act()) # <name:egon age:18> __str__ 改成act也可以,比较麻烦,不能直接打印对象就触发 print(obj1) # obj1.__str__() # <name:alex age:18> d = {'x': 1} # d=dict({'x':1}) print(d) # dict 里有个__str__方法
2. __del__析构方法
__del__会在对象被删除之前自动触发
class People: def __init__(self,name,age): self.name=name self.age=age self.f=open('a.txt','rt',encoding='utf-8') def __del__(self): # print('run=-====>') # 做回收系统资源相关的事情 self.f.close() obj=People('egon',18) print('主')
越是困难的事越要立即去做,这样收益才会最大!!!