0

我有一个实用程序类方法,我想从其他 App Engine Python 类中使用:

def parse_query_string_paramter(self, paramter, default=None):

        if self.request.get(paramter):

            # ...

从另一个类调用此方法时,我不确定如何传递原始请求的上下文,如下所示:

import webapp2
from utilities import Utility


class Search(webapp2.RequestHandler):

    def get(self):

        utility = Utility()
        search_query = utility.parse_query_string_paramter('q')
        # ...

下面返回的错误对我来说很有意义,Pythonic 解决方案虽然我不清楚从哪里开始:

File "~/utilities.py", line 112, in parse_query_string_paramter
    if self.request.get(paramter):
AttributeError: 'NoneType' object has no attribute 'get'

更新:

感谢 Tim 的解决方案,下面更新的代码现在对我有用:

def parse_query_string_paramter(self, context, paramter, default=None):

        if context.request.get(paramter):

            # ...

self从调用类传递如下:

search_query = utility.parse_query_string_paramter(self, 'q')
4

1 回答 1

1

您要么需要Search在实例化时将来自处理程序的请求作为参数传递给 Utility 类,要么作为parse_query_string_paramter方法的参数,它不能神奇地获取请求对象。

顺便说一句,除非在请求期间,Utility 的实例持有某种状态,而您可能只需要一个函数,否则您为什么会有一个 Utility 类尚不清楚。

于 2013-09-11T05:54:19.500 回答