[今さら始める Python マスター #10] デコレータとジェネレータ
Pythonのデコレータとジェネレータを使って、処理の共通化とメモリ効率のよい反復処理を学びます。
[今さら始める Python マスター #10] デコレータとジェネレータ
デコレータとは
デコレータは、関数の前後に共通処理を追加する仕組みです。
1
2
3
4
5
6
7
8
9
10
11
def log_call(func):
def wrapper(*args, **kwargs):
print("start")
result = func(*args, **kwargs)
print("end")
return result
return wrapper
@log_call
def greet():
print("hello")
ログ、認証、計測などでよく使われます。
ジェネレータとは
ジェネレータは、値を一つずつ返す反復処理です。大量データを一度にメモリへ載せたくないときに便利です。
1
2
3
def count_up():
for i in range(3):
yield i
yield
yieldは値を返しつつ、関数の状態を保持します。次に呼ばれたとき、続きから実行されます。
今日のゴール
デコレータは処理の共通化、ジェネレータは効率的な反復処理に役立ちます。最初は小さな例で動きを確認しましょう。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
