Python TypeError:调用元类base对象()时出错,不带任何参数

Python TypeError:调用元类base对象()时出错,不带任何参数,python,abstract-class,metaclass,Python,Abstract Class,Metaclass,我试图使用python的abc模块实现抽象类,如下所示 import abc class AbstractBaseClass(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def first_method(self): pass class LearnAbstractBaseClass(object): __metaclass__ = AbstractBaseClass

我试图使用python的
abc
模块实现抽象类,如下所示

import abc

class AbstractBaseClass(object):
    __metaclass__ = abc.ABCMeta

    @abc.abstractmethod
    def first_method(self):
        pass

class LearnAbstractBaseClass(object):
    __metaclass__ = AbstractBaseClass

    def first_method(self):
        print "Hello"

obj = LearnAbstractBaseClass()
上面的代码有什么问题,为什么会出现下面的错误

>>> python AbstractBaseClasses.py
C:\Python27\lib\abc.pyc
Traceback (most recent call last):
  File "AbstractBaseClasses.py", line 41, in <module>
    class LearnAbstractBaseClass(object):
TypeError: Error when calling the metaclass bases
    object() takes no parameters
不工作

class LearnAbstractBaseClass(object):
    __metaclass__ = AbstractBaseClass

    def first_method(self):
        passs

那么这个错误到底意味着什么呢?

基类不是元类。您不能使用任何常规的旧类作为元类并期望它工作
AbstractBaseClass
不是为元类而设计的,所以当你将它作为一个元类使用时,显然会出现错误。@Aran Fey Ok我不确定abc模块的实际功能,虽然abc在幕后将其转换为纯元类,Ok cool会读到一些关于abc的内容。
abc
模块使用元类来发挥其魔力,但这并不意味着它会把你的类变成一个功能正常的元类。
class LearnAbstractBaseClass(object):
    __metaclass__ = AbstractBaseClass

    def first_method(self):
        passs