Google app engine 在python中的类之间传递变量,(AttributeError:';非类型';对象没有属性';写入';)

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

下面是我的代码片段,我尝试将实例变量从DiscussPage类传递到QuesanWernedPage类

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)