自定义内置方法来定制类的功能

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('主')

  

 
 
posted @ 2018-06-30 15:06  Roc_Atlantis  阅读(138)  评论(0编辑  收藏  举报