Как мне документировать: rtype: для функции, которая возвращает несколько возможных типов данных? [Дубликат]

На этот вопрос уже есть ответ:

Как указать несколько типов возвращаемых данных, используя подсказки типа 2 ответа

В документации на Python как следует документировать:rtype: для функции, которая может возвращать несколько возможных типов данных?

Например, если функция может вернутьdefaultdict ИЛИdict ИЛИlist, на основании параметров функций, как вы документируете это?

Пример кода:

from collections import defaultdict

def read_state(state_file, state_file_type='defaultdict'):
    """Deserialize state file or create empty state and return it.

    :param state_file: The path and file name of state file to read.
    :type state_file: str
    :param state_file_type: Data type in which state is stored.
    :type state_file_type: str
    :return: Current or new empty state.
    :rtype: ????? 
    """
    if os.path.exists(state_file):
        with open(state_file) as conf_fo:
            state = json.load(conf_fo)
    elif state_file_type == 'defaultdict':
        state = defaultdict(lambda: defaultdict(list))
    elif state_file_type == 'dict':
        state = {}
    elif state_file_type == 'list':
        state = []
    else:
        raise TypeError("State file type not defined.")
    return state

Ответы на вопрос(2)

Ваш ответ на вопрос