欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python單例模式實(shí)例解析

 更新時(shí)間:2018年08月28日 15:55:58   作者:屈逸  
這篇文章主要為大家詳細(xì)介紹了python單例模式實(shí)例的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python單例模式的具體代碼,供大家參考,具體內(nèi)容如下

多次實(shí)例化的結(jié)果指向同一個(gè)實(shí)例

單例模式實(shí)現(xiàn)方式

方式一:

import settings

class MySQL:
  __instance = None

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

  @classmethod
  def from_conf(cls):
    if cls.__instance is None:
      cls.__instance = cls(settings.IP,settings.PORT)
    return cls.__instance

obj1 = MySQL.from_conf()
obj2 = MySQL.from_conf()
obj3 = MySQL.from_conf()
print(obj1)
print(obj2)
print(obj3)

方式二:

import settings

def singleton(cls):
  _instance = cls(settings.IP, settings.PORT)

  def wrapper(*args, **kwargs):
    if args or kwargs:
      obj = cls(*args, **kwargs)
      return obj
    return _instance

  return wrapper

@singleton
class MySQL:
  def __init__(self, ip, port):
    self.ip = ip
    self.port = port

obj1 = MySQL()
obj2 = MySQL()
obj3 = MySQL()
print(obj1)
print(obj2)
print(obj3)

方式三:

import settings

class Mymeta(type):
  def __init__(self, class_name, class_bases, class_dic):
    self.__instance = self(settings.IP, settings.PORT)

  def __call__(self, *args, **kwargs):
    if args or kwargs:
      obj = self.__new__(self)
      self.__init__(obj, *args, **kwargs)
      return obj
    else:
      return self.__instance

class MySQL(metaclass=Mymeta):
  def __init__(self, ip, port):
    self.ip = ip
    self.port = port

obj1 = MySQL()
obj2 = MySQL()
obj3 = MySQL()
print(obj1)
print(obj2)
print(obj3)

方式四:

def f1():
  from singleton import instance
  print(instance)

def f2():
  from singleton import instance,MySQL
  print(instance)
  obj = MySQL('1.1.1.1', '3389')
  print(obj)

f1()
f2()


singleton.py文件里內(nèi)容:
import settings

class MySQL:
  print('run...')

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

instance = MySQL(settings.IP, settings.PORT)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pandas提取數(shù)據(jù)的三種方式

    Pandas提取數(shù)據(jù)的三種方式

    本文主要介紹了Pandas提取數(shù)據(jù)的三種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 一文教會(huì)你利用Python程序讀取Excel創(chuàng)建折線圖

    一文教會(huì)你利用Python程序讀取Excel創(chuàng)建折線圖

    不同類型的圖表有不同的功能,柱形圖主要用于對(duì)比數(shù)據(jù),折線圖主要用于展示數(shù)據(jù)變化的趨勢(shì),散點(diǎn)圖主要用于判斷數(shù)據(jù)的相關(guān)性,下面這篇文章主要給大家介紹了關(guān)于如何通過一文教你利用Python程序讀取Excel創(chuàng)建折線圖的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python安裝及Pycharm安裝使用教程圖解

    Python安裝及Pycharm安裝使用教程圖解

    這篇文章主要介紹了Python安裝以及Pycharm安裝使用教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python中的Request請(qǐng)求重試機(jī)制

    Python中的Request請(qǐng)求重試機(jī)制

    這篇文章主要介紹了Python中的Request請(qǐng)求重試機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 深入理解NumPy簡明教程---數(shù)組1

    深入理解NumPy簡明教程---數(shù)組1

    這篇文章主要介紹了深入理解NumPy簡明教程(二、數(shù)組1),NumPy數(shù)組是一個(gè)多維數(shù)組對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • Python中Toml配置文件的操作詳解

    Python中Toml配置文件的操作詳解

    TOML是一種用于配置文件的輕量級(jí)、易讀的數(shù)據(jù)序列化格式,這篇文章主要為大家詳細(xì)介紹了python如何對(duì)Toml配置文件進(jìn)行簡單操作,感興趣的小伙伴可以了解下
    2023-09-09
  • python實(shí)現(xiàn)在windows下操作word的方法

    python實(shí)現(xiàn)在windows下操作word的方法

    這篇文章主要介紹了python實(shí)現(xiàn)在windows下操作word的方法,涉及Python操作word實(shí)現(xiàn)打開、插入、轉(zhuǎn)換、打印等操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python批量發(fā)送post請(qǐng)求的實(shí)現(xiàn)代碼

    Python批量發(fā)送post請(qǐng)求的實(shí)現(xiàn)代碼

    昨天學(xué)了一天的Python(我的生產(chǎn)語言是java,也可以寫一些shell腳本,算有一點(diǎn)點(diǎn)基礎(chǔ)),今天有一個(gè)應(yīng)用場景,就正好練手了
    2018-05-05
  • 一文帶你搞懂Python中的文件操作

    一文帶你搞懂Python中的文件操作

    這篇文章主要為大家詳細(xì)介紹了Python中常見的文件操作的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下
    2022-11-11
  • 用Python遠(yuǎn)程登陸服務(wù)器的步驟

    用Python遠(yuǎn)程登陸服務(wù)器的步驟

    這篇文章主要介紹了用Python遠(yuǎn)程登陸服務(wù)器的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論