Встречается на собеседованиях • сегодня

Какие типы фаерволов знаешь

В Python существуют три основных типа фаерволов (final, frozen, sealed), которые помогают контролировать наследование и изменение классов:

  1. @final (PEP 591) - запрещает наследование от класса или переопределение метода:
python
from typing import final

@final
class Base:
pass

class Child(Base): # Ошибка: Cannot inherit from final class "Base"
pass

text

2. **@frozen** (из dataclasses) - делает атрибуты класса неизменяемыми:
```python
from dataclasses import dataclass

@dataclass(frozen=True)
class Point:
    x: int
    y: int

p = Point(1, 2)
p.x = 3  # Ошибка: cannot assign to field 'x'
  1. @sealed (PEP 622) - ограничивает набор возможных подклассов (пока не реализовано в стандартной библиотеке).

Эти декораторы помогают создавать более надежный и предсказуемый код, предотвращая нежелательные изменения в иерархии классов.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы