Pythonで関数をデコレータで装飾する方法は何ですか?

Pythonにおいて、デコレーターは、関数を受け取り、新しい関数を返す関数の一種です。デコレーターを使うことで、元の関数のコードを変更せずに追加機能やロジックを追加することができます。

以下是一个简单的示例,展示了如何使用装饰器来装饰函数:

# 定义一个装饰器函数
def my_decorator(func):
    def wrapper():
        print("Before calling the function")
        func()
        print("After calling the function")
    return wrapper

# 使用装饰器来装饰函数
@my_decorator
def say_hello():
    print("Hello!")

# 调用装饰后的函数
say_hello()

上記の例では、my_decoratorはデコレーター関数であり、関数を引数として受け取り、新しい関数wrapperを返します。wrapper関数では、元の関数を呼び出す前後に追加のロジックを追加できます。say_hello関数の上に@my_decorator構文を追加することで、say_hello関数をmy_decoratorデコレーター関数に渡し、返された新しい関数をsay_helloに代入することで、say_hello関数がデコレートされます。

say_hello関数を呼び出すと、実際にはデコレートされたwrapper関数が呼び出され、”Hello!”を印刷する前と後にそれぞれ”関数を呼び出す前”と”関数を呼び出した後”が印刷されます。このようにして、関数を成功裏にデコレートすることができました。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds