• 内置方法


    类的内置方法(魔法方法):

    凡是在类内部定义,以__开头__结尾的方法,都是类的内置方法,也称之为魔法方法。

    类的内置方法,会在某种条件满足下自动触发。

    内置方法如下:

    __new__:在__init__触发前,自动触发。调用该类时,内部会通过__new__产生一个新的对象。

    __init__:在调用类时自动触发。通过产生的对象自动调用__init__()




    单例模式

    import settings


    # 通过classmethod
    class MySQL:

    # 一个默认值,用于判断对象是否存在, 对象不存在证明值是None
    # __instance是类的属性,可以由类来调用
    __instance = None # ---》 执行到代码的57行 ---》 obj
    # __instance = obj

    def __init__(self, host, port):
    self.host = host
    self.port = port

    @classmethod
    def singleton(cls, host, port): # 单例方法 ---》 类方法

    # 判断__instance中若没有值,证明没有对象
    if not cls.__instance:
    # 产生一个对象并返回
    obj = cls(host, port)
    # None ---> obj
    cls.__instance = obj

    # 若__instance中有值,证明对象已经存在,则直接返回该对象
    return cls.__instance

    def start_mysql(self):
    print('启动mysql')

    def close(self):
    print('关闭mysql')


    obj1 = MySQL.singleton(settings.HOST, settings.PORT)
    print(obj1)
    obj2 = MySQL.singleton(settings.HOST, settings.PORT)
    print(obj2)
  • 相关阅读:
    Jzoj1307 Jail
    Jzoj1307 Jail
    Jzoj1306 Sum
    Jzoj1306 Sum
    Jzoj1279 解题
    Jzoj1279 解题
    Jzoj1277最高的奶牛
    Jzoj1277最高的奶牛
    Jzoj1155 有根树的同构(树的Rabin-Karp)
    Jzoj1155 有根树的同构(树的Rabin-Karp)
  • 原文地址:https://www.cnblogs.com/medigrat/p/11957969.html
Copyright © 2020-2023  润新知