Python - 类型提示中的大括号

问题描述 投票:0回答:1

这些是什么意思?

 def f(a: {int, float}):
    pass

我在通过 PyCharm 获取文档时在一些标准 Python 模块中看到过这种语法,但我不知道它意味着什么。我的示例中

a
的暗示类型是什么?我可以向此函数传递什么类型?

我看到的具体示例是在

tkinter
Frame
__init__
方法中,其中
master
参数的类型为
{tk, _w}

python pycharm python-typing
1个回答
11
投票

这是一个提示,告诉您它想要一个具有命名属性“int”和“float”的对象——或者更具体地说,对于 tkinter“tk”和“_w”

我在 pycharm 中编写了一个最小的示例:

enter image description here

检查 python 库 sources - 您可以看到有人尝试访问

master.tk
master._w
。这就是 pycharm 能够推断出参数 master 的类型的全部内容,因此它以这种方式将其浮动到 IDE。

© www.soinside.com 2019 - 2024. All rights reserved.