Python面向对象编程

这是个Task Scheduler问题
Task类接收description,priority,deadline三个参数
PriorityQueue类是Task类的集合,每个任务分配了优先级和截止日期,集合按优先级递减和截止日期递增排序
Scheduler类使用一个优先级队列来管理一组任务,_queue的实例变量是PriorityQueue类的对象,用于存储任务
我需要实现任务的添加和移除
以下是我的代码:
import heapq

class Task:
def init(self, _description, _priority, _deadline):
self._description = _description
self._priority = _priority
self._deadline = _deadline

def __lt__(self, other):
    if self._priority == other:
        return self._deadline < other
    return self._priority > other

def get_description(self):
    return self._description

def set_description(self, _description):
    self._description = _description

def get_priority(self):
    return self._priority

def set_priority(self, _priority):
    self._priority = _priority

def get_deadline(self):
    return self._deadline

def set_deadline(self, _deadline):
    self._deadline = _deadline

def __str__(self):
    return 'description:{}, priority:{}, deadline:{}'.format(self._description, self._priority, self._deadline)

    

class PriorityQueue:
def init(self):
self._tasks = []

def add_task(self, _task):
    heapq.heappush(self._tasks, _task)

def remove_task(self, _task):
    if not self._tasks:
        return None
    else:
        self._tasks.remove(_task)
        heapq.heapify(self._tasks)
        return self._tasks.remove(_task)

def peek_task(self, _task):
    if not self._tasks:
        return None
    else:
        return self._tasks[0]

def get_tasks(self, _task):
    return self._tasks.remove(_task)

class Scheduler:
def init(self):
self._queue = PriorityQueue()

def add_task(self, _task):
    self._queue.add_task(_task)

def remove_task(self, _task):
    self._queue.remove_task(_task)
    return self._queue.remove_task(_task)

需要通过以下代码测试:

img


得到报错:

img


希望得到大家的修改意见,感谢

remove_task()方法你没有传入参数。比如:

 self.assertEqual(self.scheduler.remove_task(task2), task2)

img