我有以下代码,我尝试覆盖一个方法:
import Queue
class PriorityQueue(Queue.PriorityQueue):
def put(self, item):
super(PriorityQueue, self).put((item.priority, item))
然而,当我运行它时,我得到TypeError
例外:
super() argument 1 must be type, not classobj
有什么问题?
答案 0 :(得分:7)
Queue.PriorityQueue
不是新式课程,super
only works with new-style classes。你必须使用
import Queue
class PriorityQueue(Queue.PriorityQueue):
def put(self, item):
Queue.PriorityQueue.put(self,(item.priority, item))
代替。