Что такое семантика протокола

Python Senior Без компании
Что такое семантика протокола
Ответы
Семантика протокола определяет смысл и правила интерпретации сообщений, которыми обмениваются участники взаимодействия. В Python это относится к протоколам (интерфейсам), которые определяют ожидаемое поведение объектов через специальные методы (dunder-методы). Например, протокол итерации требует наличия `__iter__()` или `__getitem__()`, а протокол контекстного менеджера — `__enter__()` и `__exit__()`. Семантика определяет, как эти методы должны работать. Пример с протоколом последовательности: ``` class MySequence: def __len__(self): return 5 def __getitem__(self, index): return index * 2 seq = MySequence() print(len(seq)) # 5 print(seq[3]) # 6 ``` Здесь `MySequence` реализует семантику протокола последовательности через `__len__` и `__getitem__`, что позволяет использовать стандартные операции типа `len()` и индексации.