Google app engine 在python中的类之间传递变量,(AttributeError:';非类型';对象没有属性';写入';)
下面是我的代码片段,我尝试将实例变量从DiscussPage类传递到QuesanWernedPage类Google app engine 在python中的类之间传递变量,(AttributeError:';非类型';对象没有属性';写入';),google-app-engine,python-2.7,Google App Engine,Python 2.7,下面是我的代码片段,我尝试将实例变量从DiscussPage类传递到QuesanWernedPage类 class DiscussPage(webapp2.RequestHandler): def post(self): self.Ques_tit = "Content" classname = questAnsweredPage() classname.setValue(self.Ques_t
class DiscussPage(webapp2.RequestHandler):
def post(self):
self.Ques_tit = "Content"
classname = questAnsweredPage()
classname.setValue(self.Ques_tit,self.Ques_tit)
class questAnsweredPage(webapp2.RequestHandler):
Can_I = "yes"
def setValue(self,que,title):
self.response.write(que)
上面的代码返回错误:
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "B:\Eclipse World\Google App Engine\App Engine Dev\Jambite_Extended\JambitesCurrent\Jambitesupdated by bel\main.py", line 2686, in post
classname.setValue(self.Ques_tit,self.Ques_tit)
File "B:\Eclipse World\Google App Engine\App Engine Dev\Jambite_Extended\JambitesCurrent\Jambitesupdated by bel\main.py", line 2774, in setValue
self.response.write(que)
AttributeError: 'NoneType' object has no attribute 'write'
如何解决此错误您需要查看基于webapp2.RequestHandler(特别是init方法)的类签名 从我们得到的文件中 因此,当实例化从RequestHandler继承的类的实例时,需要正确初始化它 你的代码应该是
classname = questAnsweredPage(self.request,self.response)
现在,为什么要使用变量名
classname
来保存类的实例是一个完全不同的样式问题;-) 错误可能是因为self.response
只能在get()
或post()
方法中调用。除了(a)他将questAnsweredPage设置为RequestHandler的子类,以及(b)他将使用单独的类之外,似乎没有任何原因,而不是仅仅在DiscussPage中添加一个方法。我同意我甚至不打算讨论这个问题。有时,人们确实有一个合理的理由去调用另一个处理程序,但却不能;I don’我真的不想去那个老鼠洞;-)
classname = questAnsweredPage(self.request,self.response)