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(‘主‘)
原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9247202.html
时间: 2024-10-28 22:48:24