码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-06-30 15:23:20      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:返回   init   资源   class   IV   nbsp   style   str   对象   

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

  

 
 

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

标签:返回   init   资源   class   IV   nbsp   style   str   对象   

原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9247202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!