裝飾器小結加單例裝飾器

2021-09-02 19:18:44 字數 1233 閱讀 6143

裝飾器是不改變原有功能的情況下新增新的功能,感覺就是***吧!粗熟理解,不喜勿噴,

而且還不改變原有**的情況下哦

def log(func):

print('call %s():'% func.__name__)

return func(*args, **kwargs)

@log

def now():

print('2015-3-25')

本質就是一行**,我每次搞不清思路時,都是用這麼一行**來思考的

now = log(now)

這就是本質,如果裡面還有巢狀函式,無非就是多加個括號

不懂好好回頭看看廖大的部落格把

python中裝飾器的六種形態,有點變形金剛的感覺,有點自嗨

_instance = {}

def _singleton(*args, **kargs):

if cls not in _instance:

_instance[cls] = cls(*args, **kargs)

return _instance[cls]

return _singleton

class a(object):

a = 1

def __init__(self, x=0):

self.x = x

c = singleton(cls=a)

z = c(1)

y = c(2)

print(id(z))

print(id(y))

總結下問題也算是一種積累和成長把,在我的第乙份工作和任務中,

解決乙個執行緒冗餘問題,開始本地跑不了,連debug都不行,著實讓我難受了好一陣子,

好不容易本地能跑了,還是繼續蒙蔽,多執行緒,debug還是沒卵用,上面是原理把,

後來自己一直各種蒙,各種改,多執行緒和多程序看了,發現壓根就沒問題,看了感覺

乙個檔案用了遞迴,感覺問題可能就在這裡,遞迴呼叫出現的執行緒問題就在這,然後也是瞎改,隨便抄著改了一下,就好了,那真的叫開心啊,然後看了下python的單例模式,發現我還是太淺薄了,只知道自己最簡單的單例模式,後來看到裝飾器,也行,但這個原理記得不是很清楚,畢竟要改寫嘛,琢磨了單例裝飾器的原理,然後就寫了這篇部落格。

裝飾器實現單例模式

用裝飾器實現單例模式,應該算乙個很不錯的例子。我們知道,python中裝飾器無非是對物件的重新包裝,這個物件可以是函式,也可以是乙個類 decorate def test 相當於 test decorate test def decorate func def wrap args,kwargs re...

函式裝飾器和類裝飾器實現單例類

單例類,指的是這個類只能建立乙個例項,建立完成後,其他類例項都無法再建立。今天我們來看一下,使用函式裝飾器和類裝飾器怎麼實現這種特殊一點的類。裝飾器算是類裡面比較難的內容之一,但是實際上它的思想並不複雜。簡單點說,就是在你原來內容的基礎上,在外面給你加點東西,實現類似裝飾的效果。但是它是怎麼實現的呢...

裝飾器模式小結

裝飾器模式主要特徵是用特殊的方式給物件新增功能職責,實際上,這個裝飾器跟我們想象的裝飾一棵聖誕樹差不多,但又有不同之處。我的理解是,雖然增加了裝飾物,但是這些裝飾物不是直接add上去的,之前一直被這個概念搞混。因為這種模式是建立在乙個超類的基礎上的,例如下圖的 component,所有其他的類都是這...