I have the following piece of code where I try to override a method:
import Queue
class PriorityQueue(Queue.PriorityQueue):
def put(self, item):
super(PriorityQueue, self).put((item.priority, item))
However, when I run it I get TypeError
exception:
super() argument 1 must be type, not classobj
What is the problem?
Queue.PriorityQueue
is not a new-style class, and super
only works with new-style classes. You must use
import Queue
class PriorityQueue(Queue.PriorityQueue):
def put(self, item):
Queue.PriorityQueue.put(self,(item.priority, item))
instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With