zoukankan      html  css  js  c++  java
  • 自定义内置方法来定制类的功能

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

      

     
     
  • 相关阅读:
    C++防止头文件反复包括
    yppasswd, ypchfn, ypchsh
    yes
    Yacc
    xxd
    xpdf -Portable Document Format(PDF)文件阅读器
    xinetd
    xargs
    x25, PF_X25
    write -在一个文件描述符上执行写操作
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9247202.html
Copyright © 2011-2022 走看看