繁体   English   中英

python中的类继承和cookie

[英]class inheritance and cookies in python

我有一个名为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)。

谢谢

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

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]

如果我对您的理解不正确,请这样说!

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

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

username = self.read_secure_cookie('content')

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM