Что выведет код?
  Anonymous Quiz
    55%
    Alice 30
      
    23%
    ('Alice', 30)
      
    10%
    ['Alice', 30]
      
    13%
    Ошибка выполнения
      
    🔄 Как работает 
✅ Пример:
Обычно для объединения списков используют
  itertools.chain в Python?itertools.chain позволяет объединять несколько итерируемых объектов в один, не создавая новых списков. Это экономит память и делает код чище.✅ Пример:
from itertools import chain
list1 = [1, 2, 3]
list2 = [4, 5, 6]
for num in chain(list1, list2):
print(num) # 1 2 3 4 5 6
Обычно для объединения списков используют
+, но это создаёт новый список в памяти.
chain❓ Что делает метод 
Метод
✅ Пример использования:
В отличие от
new в Python и когда его использовать?Метод
new отвечает за создание нового экземпляра класса перед его инициализацией в init. Он используется в случаях, когда нужно контролировать процесс создания объекта, например, в синглтонах или при наследовании от неизменяемых типов (int, str, tuple).✅ Пример использования:
class Singleton:
_instance = None
def new(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super().new(cls)
return cls._instance
obj1 = Singleton()
obj2 = Singleton()
print(obj1 is obj2) # True (оба объекта — одна и та же ссылка)
В отличие от
init, new контролирует сам процесс создания объекта. Полезен для ограничения числа экземпляров и работы с неизменяемыми классами.👍1
  Что выведет код?
  Anonymous Quiz
    39%
    Person(name='Alice', age=30)
      
    28%
    ("Alice", 30)
      
    28%
    {'name': 'Alice', 'age': 30}
      
    4%
    Ошибка выполнения
      
    🔍 Как работает 
В Python есть два специальных декоратора для методов класса:
✅ Пример:
Используйте
staticmethod vs classmethod в Python?В Python есть два специальных декоратора для методов класса:
@staticmethod и @classmethod. Они позволяют работать без создания экземпляра, но имеют ключевые различия.✅ Пример:
class Example:
class_attr = "Hello"
@staticmethod
def static_method():
return "I'm a static method"
@classmethod
def class_method(cls):
return f"Class method: {cls.class_attr}"
print(Example.static_method()) # I'm a static method
print(Example.class_method()) # Class method: Hello
@staticmethod ведёт себя как обычная функция внутри класса, не имея доступа к атрибутам класса или экземпляра. @classmethod, наоборот, получает ссылку на класс (cls) и может изменять его атрибуты.Используйте
@staticmethod для независимых функций, а @classmethod, когда нужно работать с самим классом.❤1
  ⚙️ Как работает metaclass в Python?
В Python метаклассы управляют созданием классов, так же как классы управляют созданием объектов. Они позволяют автоматизировать и настраивать процесс создания классов.
✅ Пример:
Метаклассы позволяют добавлять атрибуты, проверять код, изменять поведение классов перед их созданием.
Это мощный инструмент, но его стоит использовать только при необходимости, например, в ORM, фреймворках и API.
  В Python метаклассы управляют созданием классов, так же как классы управляют созданием объектов. Они позволяют автоматизировать и настраивать процесс создания классов.
✅ Пример:
class Meta(type):
def new(cls, name, bases, dct):
dct["custom_attr"] = 42
return super().new(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.custom_attr) # 42
Метаклассы позволяют добавлять атрибуты, проверять код, изменять поведение классов перед их созданием.
Это мощный инструмент, но его стоит использовать только при необходимости, например, в ORM, фреймворках и API.
Что выведет код?
  Anonymous Quiz
    4%
    Ошибка выполнения
      
    20%
    Hello, World одновременно
      
    6%
    World, пауза 1 секунда, Hello
      
    69%
    Hello, пауза 1 секунда, World
      
    Что такое дескрипторы в Python и зачем они нужны?
Дескриптор — это объект, который управляет доступом к атрибутам класса через методы
✅ Пример:
Дескрипторы используются в свойствах (
  Дескриптор — это объект, который управляет доступом к атрибутам класса через методы
get, set и delete. Они позволяют гибко контролировать поведение атрибутов.✅ Пример:
class Descriptor:
def init(self, value=None):
self.value = value
def get(self, instance, owner):
print("Getting value")
return self.value
def set(self, instance, value):
print("Setting value")
self.value = value
class MyClass:
attr = Descriptor()
obj = MyClass()
obj.attr = 42 # Setting value
print(obj.attr) # Getting value → 42
Дескрипторы используются в свойствах (
property), ORM, логировании доступа и валидации данных. Они помогают гибко управлять состоянием объектов и позволяют писать более чистый код.⚡️ Как работает 
✅ Пример:
  super() в Python?super() позволяет вызывать методы родительского класса, обеспечивая правильное наследование и расширение функционала.✅ Пример:
class Parent:
def greet(self):
return "Hello from Parent"
class Child(Parent):
def greet(self):
return super().greet() + " and Child"
obj = Child()
print(obj.greet()) # "Hello from Parent and Child"
super() особенно полезен при множественном наследовании, так как помогает вызывать методы родительских классов без явного указания их имен.Зачем нужно ключевое слово 
Пример:
  yield в Python?yield используется для создания генераторов, которые возвращают данные по мере запроса, вместо хранения всего результата в памяти.Пример:
def count_up_to(n):
count = 1
while count <= n:
yield count # Возвращает значение и приостанавливает выполнение
count += 1
for num in count_up_to(5):
print(num)
yield позволяет приостанавливать и возобновлять выполнение функции, экономя память и упрощая работу с потоками данных.