ホームページ > バックエンド開発 > Python チュートリアル > Python デコレータはパラメータを受け入れることができますか?

Python デコレータはパラメータを受け入れることができますか?

Mary-Kate Olsen
リリース: 2024-12-20 18:13:18
オリジナル
975 人が閲覧しました

Can Python Decorators Accept Parameters?

デコレータはパラメータを受け取ることができますか?

コードは引数 (insurance_mode) を指定してデコレータ (@execute_complete_reservation) を使用しようとしますが、失敗します。 。これは、パラメータを持つデコレータの構文が異なるために発生します。

改訂されたデコレータ構文:

パラメータを持つデコレータは、関数を引数として受け取り、別の関数を返す関数を返します。関数。基本的には通常のデコレータを返します。

def decorator_factory(argument):
    def decorator(function):
        def wrapper(*args, **kwargs):
            # Additional code
            function(*args, **kwargs)
            # More additional code
        return wrapper
    return decorator
ログイン後にコピー

デコレータの適用:

この構文を使用すると、元のコードを次のように修正できます:

@execute_complete_reservation_factory(True)
def test_booking_gta_object(self):
    self.test_select_gta_object()
ログイン後にコピー

この改訂されたコードでは、@execute_complete_reservation_factory はファクトリ関数です。実際のテスト関数を引数として受け取るデコレータを返します。

以上がPython デコレータはパラメータを受け入れることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート