审查生成的工单复制器

来自 浅拷贝与深拷贝
Python 3.14 高级 6分钟 找出 4处问题

根据给定的所有权策略审查这个生成的工单复制器,找出 4 类不同风险。

复制工单时,应保留可变步骤之间的别名与循环,共享只读目录,创建新锁,并且只允许调用方修改工单 ID。

Python
import copy
import threading

class WorkOrder:
    def __init__(self, order_id, steps, catalog):
        self.order_id = order_id
        self.steps = steps
        self.catalog = catalog
        self.lock = threading.Lock()

    def __deepcopy__(self, memo):
        clone = type(self)(
            self.order_id,
            [copy.deepcopy(step) for step in self.steps],
            copy.deepcopy(self.catalog, memo),
        )
        clone.lock = copy.deepcopy(self.lock, memo)
        return clone

def duplicate_order(template, changes):
    clone = copy.deepcopy(template)
    clone.__dict__.update(changes)
    return clone

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误