TypeError: super(type, obj): obj must be an instance or subtype of type


问题

今天学习《Python Web 开发实战》自定义转换器这一小节,书中有段代码如下:

class ListConverter(BaseConverter):

    def __init__(self, url_map, separator="+"):
        super(ListConverter, self).__init__(url_map)
        self.separator = urllib.parse.unquote(separator)

    def to_python(self, value):
        return value.split(self.separator)

    def to_url(self, values):
        return self.separator.join(super(ListConverter, self).to_url(value)
                                   for value in values)

倒没什么问题,是可以正常运行的。


Flask 配置方法


第一种:硬编码到代码中

app = Flask(__name__)

# 配置硬编码
app.config.update(
    DEBUG=True
)
...

app.config 是 flask.config.Config 类的实例,继承自 Python 内置数据结构 dict,因此还可以:

app.config["DEBUG"] = True


set() 去重原理


起步

众所周知,set() 是 Python 中的"天然去重因子"。对一串数据如:lyst = [1, 1, 2, 4, 4],我们常常 set 一下,也就是:set(lyst),达到去重目的。

那么,set() 是如何去重的呢?


Python 实现单例


起步

单例模式是一种常用的软件设计模式,用来确保一个类只会有一个实例存在。

以下是 Python 中实现单例模式的多种方法,环境基于 Python3.6.6。