我很难理解请求和请求的范围请求.db在以下修饰的python函数中(此函数是金字塔“Todo List Application in One File”教程的一部分):
@subscriber(NewRequest)
def new_request_subscriber(event):
request = event.request
settings = request.registry.settings
request.db = sqlite3.connect(settings['db'])
我认为函数中的赋值仅限于该函数,除非声明为全局赋值;因此根据我有缺陷的理解,请求和请求.db函数完成时将超出范围。但在这种情况下,我显然错了,因为请求.db随后在其他函数中访问。有人能解释一下魔法物体的起源和范围吗请求.db拜托?你知道吗
request
实际上只是event.request
的本地别名。该函数可以重写如下:所以我们要做的就是修改传入的
event
对象的属性。由于Python传递的是实际对象,因此无论调用什么函数,都可以看到修改。你知道吗相关问题 更多 >
编程相关推荐