裝飾器的使用

2021-09-26 12:56:00 字數 1406 閱讀 3275

import platform

def judge_platform

(func)

: def add_env_parameter

(a, b)

:if platform.

system()

=="windows"

: env =

"windows"

else

: env =

"linux"

return

func

(env, a, b)

return add_env_parameter

def test

(env, a, b)

:if env ==

"windows"

:print

(a + b)

elif env ==

"linux"

:print

(a - b)

if __name__ ==

'__main__'

: c =

10 d =

5 foo =

judge_platform

(test)

foo(c, d)

import platform

def judge_platform

(func)

: def add_env_parameter

(a, b)

:if platform.

system()

=="windows"

: env =

"windows"

else

: env =

"linux"

return

func

(env, a, b)

return add_env_parameter

@judge_platform # 相當於執行judge_platform

(test)

def test

(env, a, b)

:if env ==

"windows"

:print

(a + b)

elif env ==

"linux"

:print

(a - b)

if __name__ ==

'__main__'

: c =

10 d =

5test

(c, d)

通過上面的**比較,我們可以總結出被裝飾器裝飾的函式執行的過程為:先執行裝飾函式,在裝飾函式內部呼叫我們被裝飾的函式。

python 裝飾器的使用

使用裝飾器將函式作為引數,最後再返回乙個引數,簡單來說就是在不修改原函式的 上對原函式新增新的功能。1 在原函式中新增乙個裝飾器 原函式 def sayhello print hello,world sayhello 新增裝飾器後 import functools def decorator fun...

裝飾器的簡單使用

要玩裝飾器,就要知道閉包,何為閉包?我們要從閉包的三要素說起 1.函式巢狀 即乙個函式內部還有乙個函式。2.外部函式返回值為內部函式 名 3.內部函式要用到外部函式的變數。為啥要用裝飾器呢?我的理解為,在不改變原碼的基礎上拓展某些功能,不用再寫一遍 了,在某些程度上減少了 的冗餘。看 import ...

python裝飾器的使用

在class內部,可以有屬性和方法,而外部 可以通過直接呼叫例項變數的方法來運算元據,這樣,就隱藏了內部的複雜邏輯。但是,從前面student類的定義來看,外部 還是可以自由地修改乙個例項的name score屬性 如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例...