python裝備 Python 裝飾器

2021-10-21 07:38:26 字數 1137 閱讀 3965

在不改變呼叫方式,不改變原有函式內部**的基礎上,為多個函式在執行之前或之後做相同的操作。

前提:必須理解閉包,和閉包的格式以後,才能更好的理解裝飾器。

#***************基本構造**********====

def 外層函式(引數):

def 內層函式(*args,**kwargs):

retrun 引數(*args,**kwargs)

return 內層函式

#***************例項***************===

def a(func):

def b(*args,**kwargs):

return func(*args,**kwargs)

return b

@adef func():

pass

func()

@的作用:

1. 執行a函式,並將func函式當做引數傳遞到a中。

2. a的返回值重新賦值給下面的函式。

@a相當於:

func = a(func)

func()

帶引數的裝飾器:

#***************===基礎版本***************====

def innre(*args,**kwargs):

value = func(*args,**kwargs)

return value

return innre

def a():

print(123)

a()#***************===帶引數的裝飾器***************====

print(value)

def inner(func):

print('678')

def function(*args,**kwargs):

f = func(*args,**kwargs)

return f

return function

return inner

def a():

print('123')

就是在原有的裝飾器上再加一層函式,目的是可以傳該函式單獨使用的引數而設計。

在沒有執行a()的時候,帶引數的裝飾器也會執行到function函式。

python裝逼 我是如何用python裝逼失敗的

題記 在乙個拿著錘子的人眼裡,所有的東西都是釘子。如果老師要製作詞卡讓學生去背詞,有很多好用的工具。比如quizlet,tinycards,anki等等。我用的就是quizlet。quizlet 相當贊的背詞工具 但詞表是本地檔案,如果要乙個乙個填到詞卡里,非常浪費時間。所以quizlet有個功能支...

python強制裝換

對python內建的資料型別進行轉換時,可以使用內建函式,常用的型別轉換函式如下 python常用型別轉換函式 函式格式 使用示例 描述int x base int 8 可以轉換的包括string型別和其他數字型別,但是會丟失精度 float x float 1 或者float 1 可以轉換stri...

python中staticmethod裝飾器的作用

python中的staticmethod裝飾器 decorator 主要是方便將外部函式整合到類體中,美化 結構,重點在可以不需要類例項化的情況下呼叫方法 如果去掉staticmethod,在方法中加self也可以通過例項化訪問方法也是可以整合 1.不使用staticmethod的 如何寫的 ind...