¿Cómo documento: rtype: para una función que devuelve múltiples tipos de datos posibles? [duplicar
Esta pregunta ya tiene una respuesta aquí:
Cómo especificar múltiples tipos de retorno usando sugerencias de tipo 2 respuestas En una cadena de documentos de Python, ¿cómo se debe documentar el:rtype:
para una función que puede devolver múltiples tipos de datos posibles?
Por ejemplo, si una función puede devolverdefaultdict
Odict
Olist
, según los parámetros de las funciones, ¿cómo documenta esto?
Code ejemplo:
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