大家好啊~我是Willis,今天要來介紹Python一個非常好用的工具 Decorator(裝飾器) ! (ᗒᗨᗕ)/
裝飾器本質上算是函數的一種,只是如果在程式碼中只使用函數來填寫的話,可能會使程式碼過於繁複,降低程式碼的可讀性,所以我們才會需要用 Decorator(裝飾器) 延伸原本已完成的函數,簡化程式碼。
def 裝飾器名稱(函數名稱):
def wrapper():
...
return wrapper
@裝飾器名稱
app.py
import random # 導入random模組
def odd_fun(fun):
def wrapper():
num = fun()
if (int)(num) % 2 != 0:
print("{}判斷為奇數".format(num))
else:
print("{}判斷為偶數".format(num))
return wrapper
@odd_fun
def random_fun(): # 定義使用函數
input_num = random.randint(1, 10) # 整數(int)隨機亂數1~10
return input_num
random_fun() # 呼叫使用函數
8判斷為偶數
9判斷為奇數
app.py
import random
def odd_fun(fun):
def wrapper(*args, **kwargs): # 使用*args及**kwargs取得參數
num = fun(*args, **kwargs)
if (int)(num) % 2 != 0:
print("{}判斷為奇數".format(num))
else:
print("{}判斷為偶數".format(num))
return wrapper
@odd_fun
def random_fun(*args, **kwargs): # 設定函數參數
input_num = random.randint(*args, **kwargs) # 整數(int)隨機亂數*args ~ **kwargs
return input_num
random_fun(1, 100) # 傳入參數
93判斷為奇數
78判斷為偶數
https://www.youtube.com/watch?v=qc8hsxAK270&ab_channel=%E5%BD%AD%E5%BD%AD%E7%9A%84%E8%AA%B2%E7%A8%8B
Decorator(裝飾器)的基礎篇就到這邊,下一篇我會講關於裝飾器比較進階的東西,內容會有一點燒腦唷 ! σ ゚∀ ゚) ゚∀゚)σ