ホームページ >バックエンド開発 >Python チュートリアル >Python デコレーター: 一度に 1 つのレイヤーを関数に魔法を加える

Python デコレーター: 一度に 1 つのレイヤーを関数に魔法を加える

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-26 17:41:09798ブラウズ

Python Decorators: Adding Magic to Your Functions, One Layer at a Time

デコレータとは一体何ですか?

Python のデコレータは、既存の関数の周りに追加の機能をラップできる強力なツールです。これは、実際に元のコードを変更することなく、関数に「素晴らしい」という追加のレイヤーを追加することだと考えてください。


デコレータの仕組み

デコレータは、別の関数を入力として受け取り、追加の機能を追加して、新しい関数を返す単純な関数です。

:

def shout(func):
    def wrapper():
        return func().upper()
    return wrapper

@shout
def greet():
    return "hello"

print(greet())  # Outputs: HELLO

ここでは、@shout デコレーターがgreet() を変換して、出力を大文字で返します。


デコレータの一般的な使用例

デコレータは、次のような横断的な機能を関数に追加するのに便利です。

  • ログ: 関数が呼び出されるたびに自動的にログを記録します。
  • 認証: 機密機能を実行する前に権限を確認します。
  • タイミング: 関数の実行にかかる時間を測定します。

スタッキングデコレータ

はい、複数のデコレーターをスタックして、複数の機能レイヤーを 1 つの関数に適用できます。

@authenticate
@log
def process_data(data):
    # Function code

これにより、最初に認証が実行され、次にログが実行され、最後に process_data が実行されます。


最後の言葉: デコレーター — 関数の親友

デコレータを使用すると、コードを乱雑にせずに機能を追加できます。これらは、クリーンで再利用可能な強化された機能への近道です。

?混乱せずに、より多くのことを実行できる関数を紹介します!"

以上がPython デコレーター: 一度に 1 つのレイヤーを関数に魔法を加えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。