首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以抑制mypy的“预期的TypedDict键为字符串文本”警告?

是否可以抑制mypy的“预期的TypedDict键为字符串文本”警告?
EN

Stack Overflow用户
提问于 2019-12-15 01:42:38
回答 1查看 3.8K关注 0票数 2

我正在将mypy集成到现有的代码库中,其中包含几个此类代码的实例:

代码语言:javascript
运行
复制
def foo(bar: str) -> Dict[str, QuuxType]:
    # do stuff
    return {
        bar: some_quuxtype_value,
    }

请注意,返回的dict中的键被设置为输入变量(我知道,这看起来有点像代码味道,但考虑到这个选项,我稍后会尝试解决)。

在这部分代码上运行mypy会产生一个警告:

预期的TypedDict键为字符串文本

是否有禁用此警告的选项?在快速扫描配置文档之后,我找不到多少提到它的地方。

EN

Stack Overflow用户

发布于 2020-01-03 18:17:19

尽管您没有给出足够的上下文,但我将假设您试图使用变量而不是字符串访问TypedDict的键。

在下面的示例中,我有一个用字符串文字访问键的示例,另一个示例是它将失败(但错误被抑制)。

代码语言:javascript
运行
复制
from typing import TypedDict

class Foo(TypedDict):
    fruit: str
    veggie: str

foo_instance: Foo = {'fruit': 'apple', 'veggie': 'carrot'}
print(foo_instance['fruit']) # will work

# will error unless ignored
for key in foo_instance.keys():
    print(foo_instance[key]) # type: ignore

看这个类型的操场:https://mypy-play.net/?mypy=latest&python=3.8&gist=3513b1411b6795fb2299cf8c0e451b3f

这个怪癖在Github上讨论过。

我们不支持,不。我认为,如果给key一个文字类型,它确实有效,但这似乎不太有用。 我认为,我们肯定无法对动态版本进行有用的排版。最好的移动可能是#类型:忽略

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59340593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档