Есть класс
class Class(object):
def __init__(self):
self.__num = 0
@property
def num(self) -> int:
return self.__num
@num.setter
def num(self, num: int) -> None:
self.__num = num
указываю возвращаемое значение и получаемое
но... пример ниже
class_object = Class()
print(class_object.num)
class_object.num = "str"
print(class_object.num)
не выдаст ошибку как и пример ниже
@num.setter
def num(self, num: int) -> int:
self.__num = num
Видел, что на пхп ругались, что там динамическая типизация, но я могу указать типы переменных как например (просто пример)
function foo(int $int): int
{
return int * get_any_int()
}
И пример выше в пхп ВСЕГДА будет принимать число и отдавать его, в противном случае выдаст ошибку и покажет где именно
В Python я такого не могу найти, может есть библиотека? Или мне всегда надо собственноручно писать проверку? Как нашел в гугле, это в питоне работает только для IDE и для разработчика, но что если я имею дело с юзером? Или Api и не могу контролировать какие данные будут переданы или возвращены?