[英]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.