python learning 單例模式)

2021-09-17 22:24:00 字數 1401 閱讀 6390

單例模式

class user:

__instance = none

def __new__(cls, *args, **kwargs):

if cls.__instance == none:

cls.__instance = object.__new__(user)

return cls.__instance

案例:辦公室的印表機

一台印表機可以服務於乙個辦公室中所有的人,完成他們的列印任務。

分析:1.印表機:將要列印的任務新增到列印的任務佇列中,真正的列印操作

2.經理:將要列印的操作加入印表機中

3.員工:將要列印的操作加入印表機中

class manager:

def use_printer(self,info,pr):

pr.add_task(info)

class staff:

def use_printer(self,info,pr):

pr.add_task(info)

class printer:

__instance = none

__is_init = false

def __new__(cls, *args, **kwargs):

if cls.__instance is none :

cls.__instance = object.__new__(printer)

return cls.__instance

def __init__(self):

if printer.__is_init == false:

print("init.........")

self.list_print =

printer.__is_init = true

def add_task(self,info):

"""新增列印資訊到列印佇列中"""

def print(self):

print(self.list_print)

# 程式設計師a:

pr1 = printer()

m1 = manager()

m1.use_printer("hello",pr1)

# 程式設計師b:

pr2 = printer()

st1 = staff()

st1.use_printer("itcast",pr2)

# 程式設計師c:

pr = printer()

pr.print()

print(id(pr1))

print(id(pr2))

print(id(pr))

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...

Kafka 單節點單Kafka Broker集群

tar zxvf kafka 2.12 0.10.2.1.tgz cd kafka 2.12 0.10.2.1 bin zookeeper server start.sh config zookeeper.properties bin kafka server start.sh config ser...