1. 程式人生 > >Python學習,裝飾器,元類

Python學習,裝飾器,元類

# 函式也是物件,可以把函式賦值給變數,使用變數呼叫函式

def func(x):
    return x+1

plus_one = func

print(plus_one(1))
#%%
# 裝飾器的思想是裝飾函式的物件,使函式在自身程式碼不變的情況下,增加一些普適的功能

import time

def decorator1(func):
    # 這個指的就是包裝在外面的函式
    #*args:(表示的就是將實參中按照位置傳值,多出來的值都給args,且以元組的方式呈現)
    # **kwargs:(表示的就是形參中按照關鍵字傳值把多餘的傳值以字典的方式呈現)
def wrapper(*args, **kwargs): t = time.time() ans = func(*args, **kwargs) t = time.time() -t return ans,t return wrapper #%% import time import wrapt @wrapt.decorator def decorator(func,instance,args,kwargs): t = time.time() ans = func(*args, **
kwargs) t = time.time() -t return ans,t @decorator def func(): for _ in range(10**6): x =0 return "Done" print(func()) #%% # 類即物件,函式即物件,類可以賦值給白能量,通過變數可以建立類的例項 # 這個叫做meta class,用於獲取最高控制權 class Class: def __init__(self): self.x =1 one = Class print
(one().x)