Python - фигурные скобки в типах подсказок
Что это значит?
def f(a: {int, float}):
pass
Я видел этот синтаксис, используемый в некоторых стандартных модулях Python при получении документации через PyCharm, и я понятия не имею, что это значит. Какой намеченный тип для a
в моем примере? Какие типы можно передать этой функции?
Конкретный пример, где я видел это, находится в методе tkinter
Frame
__init__
, где параметр master
имеет тип {tk, _w}
.
Ответы
Ответ 1
Это подсказка о том, что вам нужен объект с именованными атрибутами "int" и "float" - или, более конкретно, для tkinter 'tk' и '_w'
Я закодировал минимальный пример в pycharm:
![введите описание изображения здесь]()
Поиск библиотеки python sources - Вы можете видеть, что попытки доступа к master.tk
и master._w
выполняются. То, что все, что pycharm было в состоянии сделать вывод о типе мастера параметров, таким образом, он размещал его до IDE таким образом.