【发布时间】:2018-02-08 23:02:36
【问题描述】:
类可以继承..
class Base:
def __init__(self,name):
self.name = name
class Derived1(Base):
def __init__(self,name):
super().__init__(name)
class Derived2(Base):
def __init__(self,name):
super().__init__(name)
元类也可以做类似的事情吗?
我有一个要求,我的一些类必须既是抽象基类又是我自己的元类(比如单例类型..)
可以吗
class Singleton(type):
'''
implementation goes here..
'''
class AbstractSingleton(Singleton,ABCMeta):
'''
What code should go here??
'''
如果可能的话,如何实现 AbstractSingleton 类?
【问题讨论】:
-
你试过了吗?它应该工作。您的示例元类仅比您的普通类更复杂,因为它使用多重继承。
-
不,我没有.. 我不完全理解在元类继承的情况下 new 方法调用将如何被链接,正如我所问的那样,我不确定应该使用什么代码在 AbstractSingleton 里面..
-
只要您在两个元类中都使用
super,它可能就可以工作。 -
谁建议您需要单例元类?应该禁止那个人编写任何 Python 代码。
标签: python-3.x metaclass