[python] Decorator
Decorator関数を受け入れ、コマンドを追加して関数の関数として返します. 関数の内部を変更しない場合は、機能を変更したい場合に使用します. は、一般に、関数の前処理または後処理が必要な場合に使用される. はまた、レコーダを使用して、方法または関数の重複および拡張の責任を低減する も使用する.
簡単な関数を定義するコードを次に示します.
Hello world!
Hello everyone!
Here is Korea!
各関数で前、後の日付、時刻を出力する場合は、次の操作を行います.
しかし、関数が多くなったら?直接加えるのは面倒なことだ
役に立つのは
次の例では、decoratorを使用して上記の簡単なタスクを処理します.
Start!
Hello world!
2021-07-21 10:55:40.304144
Start!
Hello everyone!
2021-07-21 10:55:40.304282
Start!
Here is Korea!
2021-07-21 10:55:40.304495
reference https://bluese05.tistory.com/30
簡単な関数を定義するコードを次に示します.
def func1():
print("Hello world!")
print()
def func2():
print("Hello everyone!")
print()
def func3():
print("Here is Korea!")
print()
func1()
func2()
func3()
しゅつりょくHello world!
Hello everyone!
Here is Korea!
各関数で前、後の日付、時刻を出力する場合は、次の操作を行います.
import datetime
def func1():
print(datetime.datetime.now())
print("Hello world!")
print(datetime.datetime.now())
print()
def func2():
print(datetime.datetime.now())
print("Hello everyone!")
print(datetime.datetime.now())
print()
def func3():
print(datetime.datetime.now())
print("Here is Korea!")
print(datetime.datetime.now())
print()
このように簡単に繰り返すことができます.しかし、関数が多くなったら?直接加えるのは面倒なことだ
役に立つのは
Decorator
です.次の例では、decoratorを使用して上記の簡単なタスクを処理します.
import datetime
def datetime_decorator(func):
def decorated():
print("Start!")
func()
print(datetime.datetime.now())
print()
return decorated
@datetime_decorator
def func1():
print("Hello world!")
@datetime_decorator
def func2():
print("Hello everyone!")
@datetime_decorator
def func3():
print("Here is Korea!")
func1()
func2()
func3()
しゅつりょくStart!
Hello world!
2021-07-21 10:55:40.304144
Start!
Hello everyone!
2021-07-21 10:55:40.304282
Start!
Here is Korea!
2021-07-21 10:55:40.304495
reference
Reference
この問題について([python] Decorator), 我々は、より多くの情報をここで見つけました https://velog.io/@1yangsh/python-Decoratorテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol