TGViewer
Data Science | Вопросы собесов Data Science | Вопросы собесов @easy_ds · 4.89K subscribers
Post #2662 301
🤔 Что такое генератор, декоратор, итератор в питоне?

В Python генераторы, декораторы и итераторы являются мощными инструментами, которые облегчают решение различных задач. Давайте рассмотрим каждую из этих концепций подробнее.

🚩Генератор (Generator)

Это функции, которые позволяют вам итерировать через набор данных. Они используются для создания итераторов в Python. Генераторы создаются с использованием ключевого слова yield.
def simple_generator():
yield 1
yield 2
yield 3

gen = simple_generator()

print(next(gen)) # Вывод: 1
print(next(gen)) # Вывод: 2
print(next(gen)) # Вывод: 3


🚩Декоратор (Decorator)

Это функции, которые модифицируют или расширяют поведение других функций или методов. Они часто используются для логирования, контроля доступа, измерения времени выполнения и других задач.
def my_decorator(func):
def wrapper():
print("Что-то происходит до вызова функции")
func()
print("Что-то происходит после вызова функции")
return wrapper

@my_decorator
def say_hello():
print("Hello!")

say_hello()

# Вывод:
# Что-то происходит до вызова функции
# Hello!
# Что-то происходит после вызова функции


🚩Итератор (Iterator)

Это объекты, которые позволяют перебирать (итерировать) элементы коллекции (например, списков, кортежей и т.д.). Итератор должен реализовывать методы __iter__() и __next__().
class MyIterator:
def __init__(self, limit):
self.limit = limit
self.counter = 0

def __iter__(self):
return self

def __next__(self):
if self.counter < self.limit:
self.counter += 1
return self.counter
else:
raise StopIteration

my_iter = MyIterator(3)

for num in my_iter:
print(num)

# Вывод:
# 1
# 2
# 3


🚩Сравнение и использование

🟠Генераторы
Упрощают создание итераторов. Они позволяют создать итератор с минимальными усилиями и потребляют меньше памяти, поскольку не загружают все значения сразу.

🟠Декораторы
Позволяют изменять поведение функции или метода без изменения их кода. Они часто используются для добавления кода, который выполняется до или после основной функции.

🟠Итераторы
Предоставляют интерфейс для последовательного доступа к элементам коллекции без необходимости знать внутреннюю структуру коллекции.

Ставь 👍 и забирай 📚 Базу знаний
More from @easy_ds
  1. Oct 10, 2026Post #2697
  2. Oct 10, 2026🤔 Что такое переобучение модели? Переобучение (overfitting) происходит, когда модель слиш…
  3. Oct 9, 2026Post #2695
  4. Oct 9, 2026🤔 Расскажи о Gradient-boosted trees Gradient-boosted trees — это ансамблевый метод машинн…
  5. Oct 9, 2026🤔 Какие слабые стороны есть у алгоритма кластериации ? Алгоритмы кластеризации имеют неск…
  6. Oct 8, 2026🤔 В чем разница между листом и кортежем? В Python список (list) — это изменяемая коллекци…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →