如何从另一个班级更改一个班级的属性

时间:2019-08-04 19:45:59

标签: python class oop attributes

我正在制作一个FIFO队列,并尝试从Queue类更改Node类中的job_ID和job_type的值,但是当我运行代码时,没有得到任何错误,但是job_ID和job_type的值之后不要更改。我怎样才能解决这个问题?

class Node:
    def __init__(self, data = None, next_node = None):
        self.data = data
        self.job_ID = self.data[1]
        self.job_priority = self.data[2]
        self.job_type = self.data[3]
        self.next_node = next_node
        self.time_added = time()
        self.time_stamp = ctime(self.time_added)

    def get_data(self):
        return self.data

    def get_next(self):
        return self.next_node

    def set_next(self,new_node):
        self.next_node = new_node

class Queue:
    def __init__(self, head = None):
        self.head = head

    def enqueue(self, data):
        data = data.split()
        new_item = Node(data)
        print("Adding job " + new_item.job_ID + " to the queue with the timestamp: " + new_item.time_stamp + ".")
        print("The prority of the job is: " + new_item.job_priority)
        print("The job type is: " + new_item.job_type)
        current = self.head
        if current is None:
            self.head = new_item
        else:
            while current.get_next():
                current = current.get_next()
            current.set_next(new_item)

    def dequeue(self):
        current = self.head
        if current != None:
            print("Completed job " + current.job_ID + " in " + str(int(time() - current.time_added)) + " seconds.")
            self.head = current.get_next()
        else:
            print("No current tasks - time for a coffee break!")

    def modify(self, x):
        current = self.head
        x = x.split()
        while current != None:
            if x[1] in current.get_data():
                current.job_priority = x[2]
                current.job_type = x[3]
            else:
                print('meow')
            current = current.get_next()

应该使用modify(self, x)函数来更改给定节点的job_ID和job_type的值,但是它不起作用,并且仍返回两个属性的原始值。

0 个答案:

没有答案
相关问题