我正在做面向对象的编程并且对它很陌生。我有多个类,其中的方法都是相互关联的。现在,当我尝试使用其中一种方法的输出更新类的属性值时,如果我的语法正常,我将无法纠正。
下面是我的代码片段:
课程:
@dataclass
class ProductionTask:
id: int
processingtime: int
duration: float
done: bool
start_time: int = UNASSIGNED_FLAG
end_time: int = UNASSIGNED_FLAG
production_equipment: Any = UNASSIGNED_FLAG
stage: Any = UNASSIGNED_FLAG
@dataclass
class TransferTask:
id: int
min_transfer_duration: float
max_transfer_duration: float
done: bool
start_time: int = UNASSIGNED_FLAG
end_time: int = UNASSIGNED_FLAG
equipment_item: Any = UNASSIGNED_FLAG
stage: Any = UNASSIGNED_FLAG
@dataclass
class ProductionEquipment:
id: int
production_tasks: List[ProductionTask] | None = None
stage: Any = UNASSIGNED_FLAG
@dataclass
class TransferEquipment:
id: int
transfer_tasks: List[TransferTask] | None = None
stage: Any = UNASSIGNED_FLAG
@dataclass
class Stage:
id: int
production_equipment: List[ProductionEquipment] | None = None
transfer_equipment: List[TransferEquipment] | None = None
stage类中有如下各种方法:
def production_equipment_available(self, time):
if self.id > 1:
if self.production_equipment is not None:
for equipment in self.production_equipment:
if equipment.production_tasks is not None:
if all(
(
task.end_time < time
for task in equipment.production_tasks
)
):
available = True
else:
available = False
return available
def transfer_task_passed_minimum_from_unassigned_production_tasks(self):
production_task_ids = self.unassigned_production_tasks_in_stage2and3()
transfer_task_ids = self.completed_transfer_tasks(self._time)
for id in production_task_ids:
if id in transfer_task_ids:
return id
return None
但是,我没有得到预期的结果。我不确定语法哪里错了。我打算做什么?
假设
transfer_task_passed_minimum_from_unassigned_production_tasks
的输出是2
。 production_equipment_available
的输出也是 True。还有我可以返回可用设备的id吗?
我想将
task 2
附加到可用的equipment id
。我的意思是,该任务的属性start_time
应该是我将其分配给可用设备的时间。