“当 self.joblist_flag 为 True 时,程序会直接跳过 if last_step > 2 and new_job.job_in_time not in new_job.last_good_in_time: 条件检查”这个是在哪行代码体现的
时间: 2024-11-12 19:43:19 浏览: 11
在提供的代码片段中,并没有明确的代码行直接表明 `self.joblist_flag` 为 `True` 时会跳过 `if last_step > 2 and new_job.job_in_time not in new_job.last_good_in_time:` 这个条件检查。不过,我们可以推断出这一点通过代码逻辑。
具体来说,在以下部分:
```python
if self.joblist_flag:
base_path = 'D:/project/Scheduler_Heuristic_CassetteLess300_Service_old/joblist_data'
file_name = 'job_list.json'
new_path = get_job_list(base_path, file_name, new_job.job_id)
# 获取历史joblist,并生成fjs文件类的数据lines
pred_result = get_model_result(base_path, new_path)
# list
new_job.times = 0
new_job.last_good_in_time.clear()
new_job.last_final_in_time = 0
```
在这段代码中,当 `self.joblist_flag` 为 `True` 时,会执行一些初始化操作,包括清空 `new_job.last_good_in_time`。这会导致 `new_job.job_in_time not in new_job.last_good_in_time` 总是为 `True`,从而使得 `if last_step > 2 and new_job.job_in_time not in new_job.last_good_in_time:` 这个条件检查总是成立。
因此,可以理解为当 `self.joblist_flag` 为 `True` 时,`if last_step > 2 and new_job.job_in_time not in new_job.last_good_in_time:` 这个条件检查的效果会被绕过,因为 `new_job.last_good_in_time` 已经被清空了。
具体的相关代码行如下:
```python
if self.joblist_flag:
base_path = 'D:/project/Scheduler_Heuristic_CassetteLess300_Service_old/joblist_data'
file_name = 'job_list.json'
new_path = get_job_list(base_path, file_name, new_job.job_id)
# 获取历史joblist,并生成fjs文件类的数据lines
pred_result = get_model_result(base_path, new_path)
# list
new_job.times = 0
new_job.last_good_in_time.clear()
new_job.last_final_in_time = 0
```
这段代码中的 `new_job.last_good_in_time.clear()` 是关键点,它清空了 `new_job.last_good_in_time`,从而使后续的条件检查总是成立。
阅读全文