Аннотации атрибутов класса в ООП в Python
Тип можно указать не только у параметров метода, но и у данных объекта. В теле класса иногда пишут имя атрибута, двоеточие и тип - без присваивания значения:
class User:
name: str
age: int
def __init__(self, name, age):
self.name = name
self.age = age
Строки name: str и age: int
- это подсказки о том, какие атрибуты
появятся у объекта и какого они типа.
Сами значения задаются в конструкторе
через self.name = name и
self.age = age.
Важно не перепутать с записью свойства
класса. Если в теле класса написать
name = 'test' с присваиванием,
это общее свойство класса на все объекты.
Запись name: str без значения
свойство класса не создает - только
аннотацию для будущего атрибута объекта.
Сделайте класс Employee с аннотациями
name: str и surname: str
в теле класса. Задайте значения в
конструкторе через self.