Как документировать/документировать функцию, аргумент/возвращаемый тип которой является динамическим?

#python #docstring

Вопрос:

Используя функции pickle.dump() и pickle.load() в качестве примеров.

Как указать/document/docstring тип аргумента, в котором pickle.dump() принимается, или тип значения, в котором pickle.load() возвращается?

Вот пример оформления документов на Python в стиле Google. Как вы можете видеть, тип аргумента и тип возвращаемого значения обычной функции статичны и явно задокументированы:

 def function_with_types_in_docstring(param1, param2):
"""Example function with types documented in the docstring.

`PEP 484`_ type annotations are supported. If attribute, parameter, and
return types are annotated according to `PEP 484`_, they do not need to be
included in the docstring:

Args:
    param1 (int): The first parameter.
    param2 (str): The second parameter.

Returns:
    bool: The return value. True for success, False otherwise.

.. _PEP 484:
    https://www.python.org/dev/peps/pep-0484/

"""
 

Но иногда тип аргумента/возвращаемого значения является динамическим. Даже не pickle.py предоставляет и пример документирования типа объекта аргумента/возврата его функций.

Ответ №1:

Только в некоторых примерах показан тип возвращаемого значения, статически определенный в строке документа. Приведенный ниже пример из ссылки, размещенной в вопросе, является примером, в котором тип возвращаемого значения указывается в подписи функции с помощью подсказки типа.

Существует несколько способов указать несколько типов (например Union[int, str, float] ), поэтому выберите, какой метод подходит для вашего сценария.

 def function_with_pep484_type_annotations(param1: int, param2: str) -> bool:
    """Example function with PEP 484 type annotations.

    Args:
        param1: The first parameter.
        param2: The second parameter.

    Returns:
        The return value. True for success, False otherwise.

    """