Форматирование строк документации для python

Какой рекомендуемый способ добавления строки документации для параметра словаря? Я могу увидеть несколько строк документации здесь.

Мне нужно документировать входные аргументы функции в строке документации. Если это простая переменная, я могу использовать что-то вроде:

 def func2(a=x, b = y):
 """ fun2 takes two integers 

 Keyword arguments:
 a -- refers to age (default 18)
 b -- refers to experience (default 0)
 """

Если мы передали dict качестве входного аргумента функции:

 def func3(**kwargs):
     """ takes dictionary as input

      <Here how to explain them - Is it like?> 
      kwargs['key1'] -- takes value1

      <or simply>
      key1 -- takes value1
      """

Ответ 1

Обычно я использую стиль строки документа Google, поэтому параметр словаря будет выглядеть так:

def func(a_dict):
    """Some function to do something to a dictionary.

    Args:
      a_dict (dict of str: int): Some mapping, I guess?

    """
    ...

Функция, которая принимает **kwargs (примечание: это не совсем то же самое, что иметь параметр словаря), будет выглядеть так:

def func(**kwargs):
    """Some function to do stuff to arbitrary keyword arguments.

    Args:
      **kwargs: Arbitrary keyword arguments.

    """
    ...

Если есть определенные параметры, которые должны присутствовать (например, ваш key1), они должны быть отдельными, а не свернутыми в **kwargs.


В Python 3.x вы также можете использовать аннотации функций:

def func(a_dict: dict):
    """Some function to do something to a dictionary."""
    ...

Начиная с Python 3.5, вы можете быть еще более понятным, typing:

from typing import Mapping

def func(a_dict: Mapping[str, int]):
    """Some function to do something to a dictionary."""
    ...