如何访问另一个类的对象?

时间:2017-05-05 18:54:10

标签: python class oop object

所以我想实现两个类JobQueueProcess。我们的想法是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

我想这些足以让您了解我想写的代码类型。

2 个答案:

答案 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]]