我正在制作一个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的值,但是它不起作用,并且仍返回两个属性的原始值。