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

В чем разница между итератором и декоратором

Итератор — это объект, который реализует протокол итерации (методы __iter__() и __next__()), позволяя последовательно получать элементы коллекции. Пример:

python
class Counter:
    def __init__(self, max_num):
        self.max_num = max_num
        self.current = 0
text
def __iter__(self):
    return self

def __next__(self):
    if self.current < self.max_num:
        self.current += 1
        return self.current
    raise StopIteration
text

Декоратор — это функция, которая принимает другую функцию и расширяет её поведение без изменения исходного кода. Пример:

```python
def log_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"Time: {time.time() - start}")
        return result
    return wrapper

@log_time
def slow_func():
    time.sleep(1)

Итератор работает с данными, декоратор — с функциями.

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

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

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

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