裝飾器的應用與取消

2021-10-09 16:17:28 字數 1001 閱讀 8959

裝飾器是乙個函式,它可以裝飾其他的函式或類並為其提供額外的功能。

gof設計模式(在特定場景下可以復用的設計經驗,一共23種經典的場景)

裝飾器實現了設計模式的**模式,用**物件執行被**的行為並新增額外的功能。

**模式通常解決的都是程式橫切關注功能問題(跟正常業務邏輯沒有必然聯絡的功能)

import random

from functools import wraps

defchange_return_value

(func)

:# 可以隨時取消掉裝飾器

@wraps(func)

def(

*args,

**kwargs)

: result = func(

*args,

**kwargs)

# 可以跟元組,匹配任意乙個即可

# if isinstance(result,(str,int)):

iftype

(result)

==str

: result = result.title(

)return result

# say_hello = change_return_value(say_hello)

@change_return_value

defsay_hello()

:return

'hello,world!'

@change_return_value

defget_num()

:return random.randint(1,

101)

print

(say_hello())

print

(get_num())

# 取消掉裝飾器

print

(say_hello(

))

裝飾器的應用

from flask import flask,render template,request,redirect,session sdsfdsgdfgdfgfh 設定session時,必須要加鹽,否則報錯 def def inner args,kwargs ifnot session.get use...

Python裝飾器的原理與應用

裝飾器是什麼東西呢?就是起到裝飾作用的這麼乙個函式,那這玩意有啥用呢?很多人都會丟擲這樣的疑問,咱們就通俗的說一下這個裝飾器到底是什麼東西,是什麼工作原理呢?首先,裝飾顧名思義就是裝飾用,為什麼需要對函式裝飾呢?是因為要遵循乙個 開放 封閉 原則,因為已經寫好的函式可能已經經過很久的測試和應用,沒有...

python函式與裝飾器的綜合應用

編寫 閱讀程式實現下屬功能 一 程式執行開始時顯示 0 賬號註冊 1 充值功能 2 閱讀 二 針對檔案db.txt,內容格式為 使用者名稱 密碼 金額 完成下述功能 2.1 賬號註冊 2.2 充值功能 三 檔案story class.txt存放類別與 檔案路徑,如下,讀出來後可用eval反解出字典 ...