@r1mple

Как явно указать тип переменной передаваемой в конструктор класса?

Как мне явно указать тип передаваемой в конструктор переменной?
К примеру:
class A:
def __init__(self, height):
как мне сделать так, чтобы я точно знал, что в высоту пойдет значение типа флот
  • Вопрос задан
  • 2035 просмотров
Решения вопроса 1
@EastJesus
Прямо в аргументах при объявлении функции никак. Только внутри функции можете написатьheight = float(height)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@deliro
Никак. Python не умеет в статическую типизацию. Но можно сделать некоторые приближения:
1. mypy + typing позволит сделать из питона подобие TypeScript
2. typing. Твоя IDE (если она нормальная) подскажет тебе, что ты передаёшь не float. Но в рантайме таких проверок нет, как и в пункте №1
3. Рейзить ошибку, если if not isinstance(height, float). Проверка работает только в рантайме, IDE ничего не подстветит
Ответ написан
Комментировать
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Сделать свой костылик:
class A:
    def __init__(self, height: float):
         if not isinstance(height, float):
              raise Exception('height is not float type!')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы