【问题标题】:type hint for input parameter which will be modified输入参数的类型提示将被修改
【发布时间】:2020-12-02 15:59:11
【问题描述】:

我正在尝试在我的 python 代码中使用类型提示,以使其更具可读性和更好的文档记录,我想知道是否有办法指定输入可变参数是否会被修改函数。所以,如果我有这样的功能:

from typing import Dict

def something(d: Dict)
    d[1] = 'one'

我想知道是否可以在参数签名中明确说明我将被调用函数修改。

【问题讨论】:

  • 必须你修改字典,而不是创建一个新的,对新的进行更改,然后返回?
  • 好吧,我不需要,但我可能不想复制。无论如何,除了最好的编程实践,我想知道是否还有一种类型提示方法来记录这个。
  • 可能是一个文档字符串,而不是一个特定的类型提示。毕竟,即使在像 Java 这样的静态类型语言中,也没有简单的方法可以仅通过其标头来区分方法是否是可变的。

标签: python type-hinting


【解决方案1】:

我不知道typing 提供了什么。但我相信你可以自己做。像这样的:

import typing

T = typing.TypeVar('T')


class MutableObject(typing.Generic[T]): 
    """Object that will be mutated."""

    pass

用法:

def something(d: MutableObject[typing.Dict])
    d[1] = 'one'

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多