有没有一种描述/类型提示功能参数内容的方法?

时间:2019-10-10 14:50:35

标签: python type-hinting docstring code-documentation

我正在尝试学习如何更好地编写代码。尽管描述了一个函数,但仅暗示它已收到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 个答案:

答案 0 :(得分:2)

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:
  ...