• 工作小结 常见定制类


    双下方法

    __repr__  __str__

    __str__方法  必然返回字符串

    ‘%s’%(对象) print(str(a)) print(直接打印对象)都是走类中__str__
    %r  repr()  实际上都是走repr
    repr
    class A:
        def __str__(self):
            return '父类str打印中'  #如果是数字类的  需要str(1)  再返回
        def __repr__(self):
            return '父类repr打印中'
    class B(A):
        def __str__(self):
            return '子类str打印中'
        def __repr__(self):
            return '子类repr打印中'
    a = B()
    print('%s'%(a))  #子类str打印中
    print(a)   #子类str打印中
    print(str(a))  #子类str打印中
    print('%r'%(a))  #子类repr打印中
    print(repr(a))  #子类repr打印中
    如果子类中没有__str__就先用父类的str  父类没有str就先用子类的repr
    class
    A: def __str__(self): return '父类str打印中' def __repr__(self): return '父类repr打印中' class B(A): def __repr__(self): return '子类repr打印中' a = B() print('%s'%(a)) #父类str打印中 print(str(a)) class A: def __repr__(self): return '父类repr打印中' class B(A): def __repr__(self): return '子类repr打印中' a = B() print('%s'%(a)) 子类repr打印中 class A: def __repr__(self): return '父类repr打印中' class B(A): pass a = B() print('%s'%(a)) 父类repr打印中

    __del__  如果直接执行del方法是 例如删除一个对象 他会将连带的 对象.f = open()  一块删除   但实际上改文件并没有关掉,所以需要用到__del__方法  在del时就会调用类中的__del__

        此时将 关闭文件的操作放到下面  变成先关闭文件再删除对象,完美解决

       

    class A:
        def __del__(self):
            print('aaa')
            self.f.close()
    a = A()
    a.f = open('y.py')
    del a

    __call__

           一个对象加上()  a()就会执行__call__方法下面的功能,此方法适用于给程序添加一些小功能 简化了代码

    __len__

      

    class A:
        def __init__(self,classes):
            self.classes = classes
            self.names = []
        def __len__(self):
            return len(self.names)
    a = A('xioming')
    a.names.append('ergou')
    a.names.append('ergou')
    a.names.append('ergou')
    a.names.append('ergou')
    print(len(a))
    print(a.names)
    print(a.classes)
  • 相关阅读:
    C#操作数据库,将其查查出来的记录条数显示在winform窗体中的方法之一
    关于SQL配置管理器的服务无法启动的解决办法!
    测试随笔
    .net版ckeditor配置水印功能(转)
    vs2010安装路径解决不能修改的方法
    c#wiform中KeyDown事件
    C#winform程序自定义鼠标样式
    一条sql语句循环插入N条不同记录(转)
    winform降低功耗总结
    ILMerge合并程序
  • 原文地址:https://www.cnblogs.com/Ebola-/p/8330113.html
Copyright © 2020-2023  润新知