Pythonでデコレータを使用する

2020年7月4日  2020年10月3日 
Pythonにはデコレータという機能があります。
このデコレータを使用すると、既存の関数を変更することなく関数に機能を追加することができます。


Pythonでデコレータを使用する方法


デコレータの使い方は下記の通り。
関数を引数に持つ関数を作って、@シンタックスで指定すればデコレータを使用することができます。

from functools import wraps

#デコレータ
def deco(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        print('事前処理')
        func(*args, **kwargs)
        print('事後処理')
    return wrapper

#デコレータを使用する関数
#@シンタックスを使ってデコレータを指定する。
@deco
def test():
    print('関数本体')

#実行
test()

上記の実行結果は下記の通りです。

事前処理
関数本体
事後処理

使いこなせるかどうか微妙なところ。
読んでいる本ではログインチェック機能をデコレータで追加していました。
そういう共通処理をデコレータで実装すると良いのかも知れないです。
実装するときにはデコレータが使えるかどうかをいつも念頭に置いてみようと思います。

環境

Windows 10 Pro
Python 3.8.2


ー記事をシェアするー
B!
タグ

コメント

このブログを検索

自己紹介

自分の写真
yayao
Unityを使って、モバイルゲームを作っています。
人気の投稿