相关疑难解决方法(0)

如何通过python 3.5输入模块键入提示collections.OrderedDict

我想使用一个OrderedDict,其中键是一个枚举,并且该项是某个类.

我如何使用输入模块来暗示这一点?什么是这个暗示的namedtuple ::

Move = typing.NamedTuple('Move', [('actor', Actor), ('location', Location)])
Run Code Online (Sandbox Code Playgroud)

python typing python-3.5

19
推荐指数
2
解决办法
1693
查看次数

如何在 python 中向自定义 dict 子类添加类型注释?

我有一个与defaultdictdict类似的自定义子类,但将缺少的键传递给它,以便它可以生成适当的值。default_factory

class KeyDefaultDict(dict):
    __slots__ = ("default_factory",)

    def __init__(self, default_factory, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.default_factory = default_factory

    def __missing__(self, key):
        if self.default_factory is None:
            raise KeyError(key)
        ret = self[key] = self.default_factory(key)
        return ret

    def __repr__(self):
        return (
            f"{type(self).__name__}({repr(self.default_factory)}, {super().__repr__()})"
        )


d = KeyDefaultDict(int)
print(d["1"] + d["2"] + d["3"])  # out: 6
print(d)  # out: KeyDefaultDict(<class 'int'>, {'1': 1, '2': 2, '3': 3})
Run Code Online (Sandbox Code Playgroud)

我想像项目的其余部分一样为此类添加类型注释,但我找不到任何有关如何执行此操作的示例。我看到该typing模块使用外部类来添加注释。例如,defaultdict将用typing.DefaultDict其定义为 进行注释class typing.DefaultDict(collections.defaultdict, MutableMapping[KT, VT])

所以它是一个外部类,它是defaultdict …

python

5
推荐指数
1
解决办法
2255
查看次数

标签 统计

python ×2

python-3.5 ×1

typing ×1