<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_fig_labels( fig=None, xlabel=None, ylabel=None, xticks=None, yticks=None, title=None, row=-1, col=0, label_fontsize=18, title_fontsize=20, ):
 """Set all axis labels of a figure simultaniously. Only plots ticks and labels for edge axes. Parameters fig : matplotlib.figure.Figure object (optional) Figure to set labels of. If None, uses current figure. Default is None. xlabel : None or string (optional) x axis label. Default is None. ylabel : None or string (optional) y axis label. Default is None. xticks : None or False or list of numbers (optional) xticks. If False, ticks are hidden. Default is None. yticks : None or False or list of numbers (optional) yticks. If False, ticks are hidden. Default is None. title : None or string (optional) Title of figure. Default is None. row : integer or slice (optional) Row to label. Default is -1. If slice, step is ignored. col : integer or slice (optional) col to label. Default is 0. If slice, step is ignored. label_fontsize : number (optional) Fontsize of label. Default is 18. title_fontsize : number (optional) Fontsize of title. Default is 20. See Also -------- set_ax_labels """

    # get fig
    if fig is None:
        fig = plt.gcf()
    # interpret row
    numRows = fig.axes[0].numRows
    if isinstance(row, int):
        row %= numRows
        row = slice(0, row)
    row_start, row_stop, _ = row.indices(numRows)
    # interpret col
    numCols = fig.axes[0].numCols
    if isinstance(col, int):
        col %= numCols
        col = slice(col, -1)
    col_start, col_stop, _ = col.indices(numCols)
    # axes
    for ax in fig.axes:
        if ax.is_sideplot:
            continue
        if row_start <= ax.rowNum <= row_stop and col_start <= ax.colNum <= col_stop:
            if ax.colNum == col_start:
                set_ax_labels(ax=ax, ylabel=ylabel, yticks=yticks, label_fontsize=label_fontsize)
            else:
                set_ax_labels(ax=ax, ylabel="", yticks=False)
            if ax.rowNum == row_stop:
                set_ax_labels(ax=ax, xlabel=xlabel, xticks=xticks, label_fontsize=label_fontsize)
            else:
                set_ax_labels(ax=ax, xlabel="", xticks=False)
    # title
    if title is not None:
        fig.suptitle(title, fontsize=title_fontsize)