Python案例實操 函式裝飾器

2021-10-01 14:14:59 字數 1817 閱讀 6482

help

(classmethod

)help on class

classmethod

in module builtins:

class

classmethod

(object)|

classmethod

(function)

-> method

|| convert a function to be a class

method.|

| a class

method receives the class

as implicit first argument,

| just like an instance method receives the instance.

| to declare a class

method

, use this idiom:||

classc:

| @classmethod

|def

f(cls, arg1, arg2,..

.):|

...

# foo函式,該函式將作為函式裝飾器使用

# 作為函式裝飾器使用的函式,必須定義乙個形參

deffun1

(fn)

:print

("fun1函式"

)print

(fn)

return

"lancibe"

# 被裝飾的函式

@fun1

deffun2()

:print

("fun2函式"

)'''

函式裝飾器的本質:

(1)將被裝飾的函式(fun2)作為引數傳給裝飾器函式(fun1)

(2)被裝飾的函式(fun2)將被替換成裝飾器函式(fun1)的返回值

'''print

(fun2)

# fun2被裝飾——被替換成裝飾器的返回值

print

(type

(fun2)

)

fun1函式

>

lancibe

<

class

'str'

>

def

fun1

(fn)

:print

("fun1裝飾器函式"

)# fn就代表了被裝飾的函式

deffun3

(*a)

:print

("fun3函式"

) fn(

*a)return fun3

# 被裝飾的函式

# (1)fun2函式會被作為引數傳給fun1裝飾器函式、

# (2)fun2函式就會被替換成fun1裝飾器函式的返回值(fun3)

@fun1

deffun2

(a, b)

:print

("fun2函式"

)print

("引數a"

, a)

print

("引數b"

, b)

# 表面上是呼叫fun2函式,實際上是呼叫了fun1裝飾器函式的返回值(fun3)

fun2(2,

4)

fun1裝飾器函式

fun3函式

fun2函式

引數a 2

引數b 4

python裝飾器案例

計算函式的執行時間 import requests import time import re 黑名單 def filter url url 過濾url 測試網路請求的響應時間 def check runtime func print 初始裝飾 func.name 判斷url的 path路徑是否存在...

Python計算器實操

開發乙個簡單的python計算器 實現加減乘除及拓號優先順序解析 使用者輸入 1 2 60 30 40 5 9 2 5 3 7 3 99 4 2998 10 568 14 4 3 16 3 2 等類似公式 後,必須自己解析裡面的 符號和公式 不能呼叫eval等類似功能偷懶實現 運算後得出結果,結果必...

Flink 專案案例實操01

專案詳情 基於實時計算,您可以輕鬆完成實時欺詐檢測系統。實時欺詐檢測系統能夠及時發現使用者高危行為並採取措施,降低損失。實時欺詐檢測 風控 系統流程如下 實時計算訂閱訊息佇列,過濾出感興趣的行為,比如 購買 領券 瀏覽等。實時計算計算把這個行為特徵化。實時計算通過udf呼叫外部乙個風險模型,判斷這次...