Heim >Backend-Entwicklung >Python-Tutorial >Eine ausführliche Erklärung der Python-Dekoratoren
In diesem Artikel geht es hauptsächlich darum, die relevanten Informationen zu Python-Dekoratoren auf einfache und leicht verständliche Weise zu erlernen. Er hat einen gewissen Referenzwert.
Ich habe bereits etwas über Dekoratoren gelernt. Aber ich weiß ein wenig darüber und weiß nicht, wie ich es nennen soll. Ich möchte nur das aktuelle Projekt optimieren, also habe ich darüber nachgedacht, Dekoratoren zu verwenden, also habe ich die Dekoratoren eingehend studiert Werfen wir zunächst einen Blick auf den Code:
import time # 将函数作为参数传入到此方法.... def timeif(func): def wrapper(arg): print("in wrapper() %s" % (arg)) start = time.clock() func(arg) end = time.clock() print("used: %s %s" % (end-start, arg)) return wrapper @timeif def foo(arg): print("in foo() %s" % (arg)) if __name__ == '__main__': foo(" Hello ") # 表示执行foo函数....
Sieht das nicht aus wie unser Dekorateur? Das ist unser Dekorateur! Daher können wir es gemäß dem obigen Programm verstehen, was bedeutet, dass es zuerst die Anzahl der Parameter bestimmt und diese dann separat übergibt. Als nächstes schreiben wir den Code neu:
# coding=utf-8 # 带参数的函数 返回一个函数地址就行.... def funX(x): def funY(): return x return funY # 不带参数的函数.... def funX1(): print("调用函数funX1") def funY1(): print("调用函数funY1") return funY1 if __name__ == '__main__': # print(funX(5)()) # 调用有参数的嵌套函数... print(funX1()()) # 调用无参数的嵌套函数...
# coding=utf-8 import time # 将函数作为参数传入到此方法.... def timeif(func): def wrapper(arg): print("in wrapper() %s" % (arg)) start = time.clock() func(arg) end = time.clock() print("used: %s %s" % (end-start, arg)) return wrapper # @timeif def foo(arg): print("in foo() %s" % (arg)) if __name__ == '__main__': timeif(foo)(' Hello')
Das obige ist der detaillierte Inhalt vonEine ausführliche Erklärung der Python-Dekoratoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!