Python-类型提示中的花括号


问题内容

这些是什么意思?

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

通过PyCharm提取文档时,我已经在某些标准Python模块中使用了这种语法,但我不知道它的含义。a我的示例中提示的类型是什么?我可以将哪些类型传递给该函数?

我看到过的特定示例是intkinterFrame __init__方法,其中master参数的类型是{tk, _w}


问题答案:

提示您告诉您它想要一个具有命名属性’int’和’float’的对象-或更具体地说,用于tkinter’tk’和’_w’

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

在此处输入图片说明

检查python库源代码-您可以看到尝试访问master.tkmaster._w。pycharm能够推断出参数主类型的全部内容,因此它以这种方式将其浮动到IDE中。