Подтвердить что ты не робот

Python - фигурные скобки в типах подсказок

Что это значит?

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

Я видел этот синтаксис, используемый в некоторых стандартных модулях Python при получении документации через PyCharm, и я понятия не имею, что это значит. Какой намеченный тип для a в моем примере? Какие типы можно передать этой функции?

Конкретный пример, где я видел это, находится в методе tkinter Frame __init__, где параметр master имеет тип {tk, _w}.

4b9b3361

Ответ 1

Это подсказка о том, что вам нужен объект с именованными атрибутами "int" и "float" - или, более конкретно, для tkinter 'tk' и '_w'

Я закодировал минимальный пример в pycharm:

введите описание изображения здесь

Поиск библиотеки python sources - Вы можете видеть, что попытки доступа к master.tk и master._w выполняются. То, что все, что pycharm было в состоянии сделать вывод о типе мастера параметров, таким образом, он размещал его до IDE таким образом.