我是 python 新手,正在尝试阅读 bottle.py 源代码
在文档中,我们必须
from bottle import route, run
使用瓶子。
我尝试阅读源代码,其中路由只是第 2443 行中定义的函数
# Shortcuts for common Bottle methods.
# They all refer to the current default application.
def make_default_app_wrapper(name):
''' Return a callable that relays calls to the current default app. '''
@functools.wraps(getattr(Bottle, name))
def wrapper(*a, **ka):
return getattr(app(), name)(*a, **ka)
return wrapper
route = make_default_app_wrapper('route')
在 make_default_app_wrapper 中,调用了 app,但 app 是在第 3325 行定义的
app = default_app = AppStack()
所以当函数make_default_app_wrapper被调用时,应该没有叫app的对象(我猜?),那么返回的func怎么知道app指向什么?我有什么问题吗?