• 工作小结 常见定制类


    双下方法

    __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)
  • 相关阅读:
    同步回调函数与异步回调函数示例
    关于js中的回调函数callback
    JavaScript callback function 回调函数的理解
    CSS“隐藏”元素的几种方法的对比
    JSF中run项目时候Tomcat8启动不了的一种方法
    The JSP specification requires that an attribute name is
    [转载]Windows 2003 R2 SP2 VOL 企业版(简体中文)
    ${pageContext.request.contextPath}相关问题总结
    最简单的java浏览器
    【转】像素存储容量的计算
  • 原文地址:https://www.cnblogs.com/Ebola-/p/8330113.html
Copyright © 2020-2023  润新知