Python - 类型提示中的大括号

Python - curly braces in type hints

这些是什么意思?

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

我在通过 PyCharm 获取文档时在某些标准 Python 模块中看到了这种语法,但我不知道它是什么意思。在我的示例中 a 的提示类型是什么?我可以将哪些类型传递给此函数?

我在 tkinterFrame __init__ 方法中看到的特定示例,其中 master 参数的类型为 {tk, _w}.

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

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

检查 python 库 sources -- 您可以看到有人试图访问 master.tkmaster._w。这就是 pycharm 能够推断出参数 master 类型的所有内容,因此它以这种方式将其浮动到 IDE。