Есть ли способ описать / напечатать подсказку о содержании параметров функции? - PullRequest
3 голосов
/ 10 октября 2019

Я пытаюсь узнать, как лучше документировать мой код. Описывая функцию и просто намекая на то, что она получает dict, кажется, что у любого будущего читателя довольно мало информации.

Распространено ли вообще делать следующее? Или, может быть, есть другой способ, которым я пропустил чтение на эту тему?

    def add_control(self, ctrl_data: dict):
        """

        :param ctrl_data:
            - name: str
            - channel: int
            - control_channel_id: int
            - default_position: int
        :type ctrl_data: dict
        """

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

1 Ответ

2 голосов
/ 10 октября 2019
from typing import TypedDict

class CtrlData(TypedDict):
  name: str
  channel: int
  control_channel_id: int
  default_position: int

def add_control(self, ctrl_data: CtrlData):
  ...
  • Чтобы лучше документировать код, необходимо добавить тип возврата.
def add_control(self, ctrl_data: CtrlData) -> TReturn:
  ...
  • Вы также можете изменить сигнатуру функции и оставить вызывающего абонента распакованным. Я бы сказал, что понятнее, когда у вас всего несколько параметров.
def add_control(
  self,
  name: str,
  channel: int,
  control_channel_id: int,
  default_position: int
  ) -> TReturn:
  ...
...