【问题标题】:Is there a way to describe/type-hint the contents of a function's parameters?有没有办法描述/类型提示函数参数的内容?
【发布时间】:2019-10-10 14:50:35
【问题描述】:

我正在尝试学习如何更好地记录我的代码。描述一个函数并只是暗示它接收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
        """

编辑:在盲目地将其称为重复问题之前,请实际阅读一下该问题。我的问题已经表明我知道什么是类型提示,我正在寻找关于在处理参数中的嵌套对象时类型提示如何工作的一个非常具体的部分的答案。

【问题讨论】:

  • @Georgy 我知道一般的类型提示是什么,而链接的问题并没有告诉我任何关于我在这里要问的内容。我似乎找不到关于这个特定主题的任何材料。更清楚地说,我对您可能称之为“嵌套类型提示”的东西感兴趣。
  • 您在寻找TypedDict吗?
  • 感谢@Georgy 的两个建议。

标签: python type-hinting docstring code-documentation


【解决方案1】:
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:
  ...

【讨论】:

  • 感谢您的两个回答。出于不同的原因,它为我提供了两种方法。
猜你喜欢
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多