При вызове баз метаклассов объект .__ init __ () не принимает параметров - PullRequest
0 голосов
/ 04 марта 2012

Когда я пытаюсь использовать этот единственный подход синглтона:

class Singleton(object):                                                     
    def __init__(self, name, bases, dict):                                   
        super(Singleton, self).__init__(name, bases, dict)                   
        self._instance = None                                                

    def __call__(self):                                                      
        if self._instance is None:                                           
            self._instance = super(Singleton, self).__call__()
        return self._instance                                                


class NewClass(object):      
    __metaclass__ = Singleton

Я получаю ошибку:

Ошибка при вызове объекта баз метаклассов.1008 * () не принимает параметров

Я не уверен, правильно ли я понимаю, что аргументы принимают __init__ метод: name, bases, dict.А на самом деле - где моя ошибка / непонимание?

1 Ответ

7 голосов
/ 04 марта 2012

Метаклассы происходят от type, а не object.

...