как вы наследуете очередь в Python - PullRequest
3 голосов
/ 16 июля 2011

когда я наследую очередь, я получаю сообщение об ошибке:

super(domainQueue,self).__init__()
TypeError: must be type, not classobj

и когда я читаю об этом, что-то о классических классах и т. Д.

Как инициализировать базовый класс очереди?

Ответы [ 2 ]

3 голосов
/ 16 июля 2011

Queue.Queue - это класс старого стиля, и поэтому он не поддерживает многие функции классов нового стиля (например, super). У вас есть два варианта: явным образом вызвать Queue.Queue, как предложено в ответе TorelTwiddler, или добавить object к основаниям:

class myQueue(Queue.Queue, object):
    def __init__(self):
        super(myQueue, self).__init__()
1 голос
/ 16 июля 2011

Чтобы просто заставить его работать, используйте Queue.__init__(self).

class myQueue(Queue.Queue):
    def __init__(self):
        Queue.Queue.__init__(self)

Почему он возвращает classobj вместо type? Понятия не имею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...