def METHOD_NAME(cls, other: "MenuBase"):
    inst = cls(owner=other.owner)
    inst.message = other.message
    for attr in cls.__menu_copy_attrs__:
        # copy the instance attr to the new instance if available, or fall back to the class default
        sentinel = object()
        value = getattr(other, attr, sentinel)
        if value is sentinel:
            value = getattr(cls, attr, None)
        setattr(inst, attr, value)
    return inst