#python #python-3.x #type-hinting #type-annotation
#python #python-3.x #подсказка типа #тип-аннотация
Вопрос:
Я наткнулся на функцию с такой подписью:
def get_quantile(numbers: List[float], q: float | int ) -> float | int | None :
Что это значит?
Это синтаксическая ошибка в моем python 3.8. Нужно ли мне что-то импортировать future
, чтобы заставить его работать?
Комментарии:
Ответ №1:
Согласно PEP 604, |
будет использоваться для обозначения типов объединения из Python 3.10.
Так float | int
будет означать Union[float, int]
, т.Е. значение с плавающей точкой или int .
Ответ №2:
Это означает or
. So q: float | int
означает, что q
это может быть либо a float
, либо an int
.
Комментарии:
1. Вы уверены
or
, что это может быть в аннотации? Помимо некоторых странных вычислений типов и значений. Извините за атаку на ваш ответ, но вы сделали «или» похожим на ключевое слово Python, которое может ввести кого-то в заблуждение 😉2. На самом деле это не означает
or
, а точнее «объединение», что согласуется с использованием этого же оператора для наборов и словарей. И нет,or
ключевое слово не может использоваться в аннотации типа.