python 裝飾器簡介

2022-08-18 07:45:10 字數 1130 閱讀 8008

24、裝飾器

1、@ + 函式名:#1自動執行outer函式並且將下面的函式名f1當做引數傳遞

#2將outer函式的返回值,重新賦值給f1.

def outer(func):

def inner():

print('before')

r = func()

print('after')

return r      ==>有返回值時這麼處理。

return inner

@outer

def f1():

print('nihao')

return 'nimei'

注意:定義函式,未呼叫函式內部不執行;函式名代指的函式的整體。

2、應用:

def outer(func):

def inner(*args,**kwargs):

print('before')

r = func(*args,**kwargs)

print('after')

return r

return inner

@outer

def f1():

pass

@outer

def f2():

pass

.......

@outer

def    f100():

pass

3、有引數時: 萬能引數。。

def outer(func):

def inner(*args,**kwargs):

print('before')

r = func(*args,**kwargs)

print('after')

return r

return inner

@outer

def f1(arg):

print(arg)

return 'nimei'

@outer

def f2(a,b):

print(a,b)

python中的裝飾器簡介

什麼是裝飾器 把乙個函式當作引數,返回乙個替代版的函式,本質上就是乙個返回函式的函式 簡單來說就是 在不改變原函式的基礎上,給函式增加功能 例如下面的例子 def func1 print hello python def outer print func1 outer 如果我們使用裝飾器來實現上面的...

python裝飾器 Python 裝飾器

簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...

python裝飾器 裝飾器

由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...