問題一覧に戻る
上級高度なパターン
問題107: functools応用

functoolsモジュールは関数型プログラミングのツールを提供します。@lru_cacheは関数の結果をキャッシュして高速化(メモ化)し、partial()は関数の一部の引数を固定して新しい関数を作成します。これらにより、効率的で再利用可能なコードが書けます。

# functools応用
from functools import

# メモ化

def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)

# 部分適用
from functools import
def multiply(x, y):
return x * y

double = (multiply, 2)

# 関数を使用
print(fibonacci(10))
print(double(5))