小编Ket*_*uem的帖子

如何在元类中使用多重继承?

我正在尝试Flask-RESTFUL使用注册表模式注册我定义的所有资源.

from flask_restful import Resource

class ResourceRegistry(type):

    REGISTRY = {}

    def __new__(cls, name, bases, attrs):
        new_cls = type.__new__(cls, name, bases, attrs)
        cls.REGISTRY[new_cls.__name__] = new_cls
        return new_cls

    @classmethod
    def get_registry(cls):
        return dict(cls.REGISTRY)


class BaseRegistered(object):
    __metaclass__ = ResourceRegistry


class DefaultResource(BaseRegistered, Resource):

    @classmethod
    def get_resource_name(cls):
        s = re.sub('(.)([A-Z][a-z]+)', r'\1-\2', cls.__name__)
        return '/' + re.sub('([a-z0-9])([A-Z])', r'\1-\2', s).lower()
Run Code Online (Sandbox Code Playgroud)

当整个事情发布时,我得到以下内容:

TypeError: Error when calling the metaclass bases
metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of …
Run Code Online (Sandbox Code Playgroud)

python metaprogramming flask flask-restful

5
推荐指数
2
解决办法
2659
查看次数

标签 统计

flask ×1

flask-restful ×1

metaprogramming ×1

python ×1