我正在尝试学习如何更好地编写代码。尽管描述了一个函数,但仅暗示它已收到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
"""
编辑:在盲目地将其称为重复项之前,请先实际阅读该问题。我的问题已经表明,我知道什么是类型提示,我正在寻找有关在处理参数中的嵌套对象时类型提示如何工作的非常特定的答案。
答案 0 :(得分:2)
TypedDict
。 TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys。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:
...