从方法的输出将值更新为类的属性

问题描述 投票:0回答:0

我正在做面向对象的编程并且对它很陌生。我有多个类,其中的方法都是相互关联的。现在,当我尝试使用其中一种方法的输出更新类的属性值时,如果我的语法正常,我将无法纠正。

下面是我的代码片段:

课程:

@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
    应该是我将其分配给可用设备的时间。

python oop methods syntax-error python-dataclasses
© www.soinside.com 2019 - 2024. All rights reserved.