-1

我有一个名为 BlogHandler 的类,其中包含一些基本功能。我将这个类传递给另一个名为 MainPage 的类。我试图在我的 MainPage 类中使用 BlogHandler 的一个函数,但它说它没有定义。

class BlogHandler:
    def read_secure_cookie(self, name):
        cookie_val = self.request.cookies.get(name)
        return cookie_val and check_secure_val(cookie_val)


class MainPage(BlogHandler):
    def post(self):
        email = self.request.get('email')
        product = self.request.get('product')
        username = read_secure_cookie('content')

cookie 的“内容”是 14|b670fedff24f182e52a1ceacf7790e02。如何只返回“cookie_val”和“cookie_val”的第一部分(14)。

谢谢

4

2 回答 2

2

对于第一个错误,您需要使用:

self.read_secure_cookie('content')

任何超类方法也必须用self. (还有其他方法,但这是最佳做法。)

至于纠正你的其他问题(我假设你想返回多个值),只需使用逗号而不是and

return cookie_val, check_secure_val(cookie_val)

对于您的第三个问题,请按照克里斯所说的拆分:

cookie_value.split('|')[0]

把它们放在一起:

class BlogHandler:
    def read_secure_cookie(self, name):
        cookie_val = self.request.cookies.get(name)
        return cookie_val, check_secure_val(cookie_val)

class MainPage(BlogHandler):
    def post(self):
        email = self.request.get('email')
        product = self.request.get('product')
        cookie_val, cookie_secure_val = self.read_secure_cookie('content')
        username = cookie_val.split("|")[0]

如果我没有正确理解您,请直说!

于 2012-08-01T18:55:46.470 回答
1

read_secure_cookie 是 BlogHandler 类的实例方法,这意味着它需要对象作为参数。

通过在MainPage类中扩展和添加功能,您已经继承了实例方法,并且可以像Python中的所有实例方法一样访问它们,您需要添加关键字selfie

username = self.read_secure_cookie('content')

要回答您的第二个问题,给定一个包含内容myStr = '14|b670fedff24f182e52a1ceacf7790e02'的字符串,最简单的拆分方法是首先找到您希望拆分的字符: ind = string.find('|') 然后将其拆分为两个部分:

first = myStr[:ind] end = myStr[ind:]

于 2012-08-01T18:56:48.333 回答