python如何在其中找到修饰的函数?

时间:2018-10-27 07:00:16

标签: python design-patterns flask python-decorators

在以下代码中,app.run()如何发现hello()存在?我浏览了代码,找不到答案。我认为hello()直到被调用才不会添加到路由列表中,但是如何调用它?

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

我对Flask尤其不感兴趣。我只想自己实现类似的功能。

这种设计模式叫什么?

1 个答案:

答案 0 :(得分:3)

您的假设是错误的。装饰器本身是可执行代码,当装饰的函数被定义时即在导入时被调用。装饰器中的代码然后可以将路由添加到其注册表中。