• Python魔法方法(转发整合)


    如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。

    __new__:

    是一个对象实例化时调用的第一个方法,这个方法用来创建实例,接下来调用__inti__方法初始化实例

    第一个参数是当前类,其他参数用来传递给__init__

    主要用于继承一个不可变的类型如元组,字符串

    return一个构建的实例 (可用来构建单例模式)

    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
     
        def __new__(cls*args, **kwargs):
            if not hasattr(cls,'instance'):
                cls.instance = super(Person,cls).__new__(cls)
            return cls.instance
     
     
    = Person('p1',20)
    = Person('p2',21)
    print(a == b)
    #这里的打印结果是True,可见a,和b都是同一个实例
    #单例作用:
    #第一、控制资源的使用,通过线程同步来控制资源的并发访问;
    #第二、控制实例产生的数量,达到节约资源的目的。
    #第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不##相关的两个线程或者进程之间实现通信。
    #比如,数据库连接池的设计一般采用单例模式,数据库连接是一种数据库资源。
     
  • 相关阅读:
    用免费Scrum工具Leangoo思维导图 实现影响地图
    mysql-线程模型
    mongodb-锁
    mongodb-mmapv1存储引擎解析(转)
    netty-read
    netty-bind
    netty-eventloop
    java基础-Executor
    ehcache3-源码简析三
    ehcache3-源码简析二
  • 原文地址:https://www.cnblogs.com/EmptyRabbit/p/7688423.html
Copyright © 2020-2023  润新知