Python docstringでは、どのように:rtype:
複数の可能なデータ型を返すことができる関数については?
たとえば、関数がdefaultdict
OR dict
OR 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
私は同じような質問に出くわして自分自身を見つけたと思います: type-hintsを使用して複数の戻り値の型を指定する方法
:rtype:することができます
:rtype: Union[collections.defaultdict, dict, list]
Rtypeで「または」を明示的に使用できます
:rtype: collections.defaultdict or dict or list
バリアント
:rtype: collections.defaultdict | dict | list