def is_safe(self,requesting_train_name,requesting_train_priority,requested_resources):
# Initialize P1 & P0
# We need to maintain an AR.
performer = requesting_train_name
AR = set(filter(lambda x : G.node[x]['reservation'] <= requesting_train_priority, G.nodes()))
P1 = []
P0 = self.active_trains.keys()
active_trains_trial = self.active_trains.copy()
print active_trains_trial is self.active_trains
# Update AR. Remove all elements of requested resources from AR
AR.difference_update(set(requested_resources))
# Provisionally updating OR
print 'OR before update',self.active_trains[performer].OR
active_trains_trial[performer].OR.update(set(requested_resources))
print 'OR after update',self.active_trains[performer].OR
'OR before update'和'OR after update'行應該給出相同的結果。這沒有發生。 - is - 語句按預期返回False。正在更新全局變量
我在代碼中做了以下更改。 1 - >我創建了一個類,這個函數和這個字典「active_trains」駐留在這個類中。 –