1. 程式人生 > 實用技巧 >20210108-1 裝飾器詳解

20210108-1 裝飾器詳解

裝飾器:
定義:
本質是函式,功能是用來裝飾其他函式,就是為其他函式新增附加功能(器是函式的意思,本質是用來裝飾的)
原則:
1. 不能修改被裝飾的函式的原始碼
2. 不能修改被裝飾的函式的呼叫方式
# 裝飾器,對被裝飾的函式是完全透明的

1-1
def test1():
    pass

def test2():
    pass

test1()
test2()

test1 和 test2 都有自己要完成的功能,現在要把 test1 和 test2 新增加一個記錄日誌的功能
應該如何操作?

1-1-1
以前的做法,把程式碼一段一段的加進去
def test1():
    pass
print('logging') def test2(): pass print('logging') test1() test2() 1-1-2 學了函式之後,高階了一些;單獨定義一個函式 def logger(): print('logging') def test1(): pass logger() def test2(): pass logger() test1() test2() 1-1-3 假如有 100 個函式,已經執行在生產環境當中 有一天產品經理說,要對app新增一個功能,應該怎麼做?找到100個函式,每一個都加上去? 但是你的程式已經運行了,這種修改原始碼的操作,意味著會有風險發生 所以,新增一個功能,不能夠修改函式的原始碼,函式一旦寫好了,原則上是不能動原始碼的 因此,函式的呼叫方式也不能修改