【发布时间】:2023-04-02 10:49:01
【问题描述】:
我有一个类,它本质上是一个字典的包装器:
class Wrapper(dict):
...
def __getitem__(self, item: Hashable) -> Any:
return self.wrapped[item]
使用mypy 检查注释时,检查此代码时会产生Explicit "Any" is not allowed。我的猜测是,这源于Any 是所有其他类型的祖先和继承者的概念。我应该如何注释这样的函数,我想允许返回任何东西?
【问题讨论】:
-
我猜他们希望你只删除注释,但我仍然感到惊讶的是,明确的
Any实际上会被禁止。 -
另外,您似乎犯了一个常见的错误,即从
dict继承另一个 dict 作为实例变量。不要那样做;选择其中一个,否则您最终会浪费空间并遇到非常令人困惑的错误,即当您期望数据落在另一个字典中时,数据最终会出现在一个字典中。