1
我很努力地理解请求和request.db在以下装饰的python函数(该函数是金字塔“Todo列表应用程序在一个文件中”教程)的一部分的范围:金字塔函数内的对象的范围
@subscriber(NewRequest)
def new_request_subscriber(event):
request = event.request
settings = request.registry.settings
request.db = sqlite3.connect(settings['db'])
我认为函数中的赋值被限制在该函数的范围内,除非声明为全局;所以根据我的缺陷理解,request和request.db在函数完成时会超出范围。但在这种情况下,我明显错误,因为request.db随后在其他函数中被访问。有人能解释魔术物体的请求和request.db的起源和范围吗?