Как Python может найти в нем декорированные функции? - PullRequest
0 голосов
/ 27 октября 2018

В следующем коде, как 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 голосов
/ 27 октября 2018

Ваше предположение неверно. Декораторы сами по себе являются исполняемым кодом и вызываются, когда декорируемая ими функция определена , т.е. во время импорта. Затем код в декораторе может добавить маршрут в свой реестр.

...