所以我想实现两个类JobQueue
和Process
。我们的想法是JobQueue
管理Process
类型的对象,并以最短的处理时间对对象进行优先级排序。因此第一个属性应表示进程的ID,第二个属性应为处理时间,两者都是整数。我的班级Jobqueue
如何从其他班级访问这些对象?
>>>class Process:
def __init__(self,pid,procTime):
self.pid=str(pid)
self.procTime=procTime
>>>p1=Process(1234,55)
>>>p2=Process(4544,34)
>>>class JobQueue:
queue=[]
def insert(p): #how can I insert a certain object that I created before (p1 or p2)?
queue.append([p.pid,p.procTime])
非常感谢一些帮助。
编辑:以下是代码最终应该做的一些示例:
>>>p1=Process(5234,60)
>>>p2=Process(8824,17)
>>>p2=Process(2291,34)
>>>j=JobQueue()
>>>j.extractMin() #Giving me the minimum of the queue and deletes it. If it is empty, the output shall be float('inf')
inf
>>>j.insert(p1) #the method insert inserts the objects to the queue
>>>j.insert(p3)
>>>print(j.minimum()) #prints the ID with the shortest processing time of all objects
2291
>>>j.decreaseKey(p1,23) #replaces the current processing time of p1 by 23
>>>print(j.minimum())
5234
>>>j.insert(p2)
>>>print(j.extractMin())
8824
>>>print(j.extractMin())
5234
>>>print(j.minimum())
2291
我想这些足以让您了解我想写的代码类型。
答案 0 :(得分:1)
您可以在作业队列的init方法中插入:
class Process:
def __init__(self,pid,procTime):
self.pid=str(pid)
self.procTime=procTime
class JobQueue:
def __init__(self,procs = None):
self.queue = []
for p in procs:
self.insert(p)
def insert(p):
self.queue.append([p.pid,p.procTime])
p1=Process(1234,55)
p2=Process(4544,34)
a = JobQueue(procs = [p1, p2])
答案 1 :(得分:1)
这样的事情:
class Process:
def __init__(self,pid,procTime):
self.pid=str(pid)
self.procTime=procTime
class JobQueue:
queue=[]
def insert(self,p):
self.queue.append([p.pid,p.procTime])
p = Process(1,2)
jq=JobQueue()
jq.insert(p)
print (jq.queue)
OP:
[['1', 2]]