flask自定义URL转换器

flask里app.py有这么一段代码

from werkzeug.routing import BaseConverter
    
class ListConverter(BaseConverter):
    def to_python(self, value):
        return value.split(',')
    def to_url(self, values):
        return ','.join(BaseConverter.to_url(value)
                        for value in values)
class BaseConverter(object):

    """Base class for all converters."""
    regex = '[^/]+'
    weight = 100

    def __init__(self, map):
        self.map = map

    def to_python(self, value):
        return value

    def to_url(self, value):
        return url_quote(value, charset=self.map.charset)

我想问一下ListConverter里怎么可以直接使用BaseConverter.to_url(value),to_url方法是一个对象方法,怎么可以这样调用?

阅读 4.6k
2 个回答

确实是有错的,可修改为super(ListConverter,self).to_url(values)或BaseConverter.to_url(self,values)

因为 ListConverter 继承自 BaseConverter,python 子类里是可以直接写类名来调用父类中的方法的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题