我有以下代码,我尝试覆盖一个方法:
import Queue
class PriorityQueue(Queue.PriorityQueue):
def put(self, item):
super(PriorityQueue, self).put((item.priority, item))
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我得到TypeError异常:
super() argument 1 must be type, not classobj
Run Code Online (Sandbox Code Playgroud)
问题是什么?
Queue.PriorityQueue不是新式的类,super 只适用于新式类.你必须使用
import Queue
class PriorityQueue(Queue.PriorityQueue):
def put(self, item):
Queue.PriorityQueue.put(self,(item.priority, item))
Run Code Online (Sandbox Code Playgroud)
代替.
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |