【发布时间】:2014-05-28 03:51:42
【问题描述】:
在编写 tornado Http Server 时,我无法从单独的 RequestHandler 对象访问包含 tornado 应用程序对象和 start 方法的主类中的实例变量。考虑以下粗略的例子,
class MyServer(object):
def __init__(self):
self.ref_object = 0
self.application = #Add tornado.web.applicaiton here
def change_ref_object(self, ref_obj):
self.ref_object = ref_obj
def start(self):
#start the server
pass
class SomeHandler(tornado.web.RequestHandler):
def post(self):
#Yada, yada, yada
#Call method on Myserver's ref_object
pass
我需要在SomeHandler 的post() 方法中访问MyServer 的ref_object 实例,并且我需要确保在SomeHandler 中访问的ref_object 是同一个对象,如果它在change_ref_object() 中更改的话。
Somehandler 仅在创建 python tornado Web 服务器(应用程序)时被引用为一个类,并且不清楚如何访问 SomeHandler 的此类实例以在 MyServer 中更改其临时 ref_object 时更改其临时 ref_object .
这基本上归结为我不了解 SomeHandler 的实例将存在于 MyServer 范围内(或具体而言,MyServer 的应用程序对象)的什么位置。
【问题讨论】:
-
感谢您提出这个问题:由于
tornado的独特结构,我一直在努力解决这个问题