В чем разница между модулем и пакетом в Python?
Каждый файл программы на Python является модулем, который может импортировать другие модули в виде объектов. Таким образом, модуль служит способом организации вашей программы. Папка, содержащая программу на Python, называется пакетом модулей.
Библиотека задач по Python
Каждый файл программы на Python является модулем, который может импортировать другие модули в виде объектов. Таким образом, модуль служит способом организации вашей программы. Папка, содержащая программу на Python, называется пакетом модулей.
Библиотека задач по Python
Что будет, если декоратор не возвращает ничего?
Если декоратор не возвращает ничего, то происходит следующее:
— Декоратор заменяет оригинальную декорируемую функцию на значение None.
— При попытке вызвать декорированную функцию произойдет ошибка AttributeError, поскольку None не является вызываемым объектом.
— Выполнение декорируемого кода на самом деле не происходит.
— Декоратор фактически "срывает" работу декорируемой функции, делая ее невызываемой.
Чтобы этого избежать, декоратор обязательно должен возвращать некоторое вызываемое значение — либо оригинальную функцию, либо другую функцию-обёртку.
Таким образом, не возвращая ничего декоратор нарушает ожидаемое поведение и "ломает" декорируемый код.
Библиотека задач по Python
Если декоратор не возвращает ничего, то происходит следующее:
— Декоратор заменяет оригинальную декорируемую функцию на значение None.
— При попытке вызвать декорированную функцию произойдет ошибка AttributeError, поскольку None не является вызываемым объектом.
— Выполнение декорируемого кода на самом деле не происходит.
— Декоратор фактически "срывает" работу декорируемой функции, делая ее невызываемой.
Чтобы этого избежать, декоратор обязательно должен возвращать некоторое вызываемое значение — либо оригинальную функцию, либо другую функцию-обёртку.
Таким образом, не возвращая ничего декоратор нарушает ожидаемое поведение и "ломает" декорируемый код.
Библиотека задач по Python
Что будет если ошибку не обработает блок except?
Если ошибка не будет обработана в блоке except, то программа прервется и выдаст сообщение об ошибке. Это называется необработанным исключением.
При возникновении исключения Python генерирует traceback — последовательность вызовов функций, которая привела к ошибке.
Если исключение не перехватывается блоком except, то traceback выводится пользователю и программа завершается аварийно.
Библиотека задач по Python
Если ошибка не будет обработана в блоке except, то программа прервется и выдаст сообщение об ошибке. Это называется необработанным исключением.
При возникновении исключения Python генерирует traceback — последовательность вызовов функций, которая привела к ошибке.
Если исключение не перехватывается блоком except, то traceback выводится пользователю и программа завершается аварийно.
Библиотека задач по Python
Есть ли в Python сборщик мусора, и, если есть, как он работает?
Стандартный интерпретатор использует несколько алгоритмов.
🧹 Подсчёт ссылок. Каждый объект в Python содержит внутренний счётчик ссылок. Когда он падает до нуля, это означает, что на объект больше нет ссылок, его можно удалить. Главный недостаток этого алгоритма — не умеет определять циклические ссылки.
🧹 Алгоритм поиска циклов. Реализован в модуле gc и активируется время от времени, а не постоянно. Если коротко, этот алгоритм периодически ищет объекты, которые ссылаются только друг на друга и не доступны извне. Объекты, признанные недостижимыми, удаляются.
Также стоит добавить, что циклический сборщик мусора делит объекты на три поколения в зависимости от того, как долго они существуют в памяти. Новые объекты помещаются в первое поколение. Если они сохраняются после очередного процесса сбора мусора, то перемещаются в следующее по старшинству поколение. Объекты в более старших поколениях проверяются реже.
Библиотека задач по Python
Стандартный интерпретатор использует несколько алгоритмов.
🧹 Подсчёт ссылок. Каждый объект в Python содержит внутренний счётчик ссылок. Когда он падает до нуля, это означает, что на объект больше нет ссылок, его можно удалить. Главный недостаток этого алгоритма — не умеет определять циклические ссылки.
🧹 Алгоритм поиска циклов. Реализован в модуле gc и активируется время от времени, а не постоянно. Если коротко, этот алгоритм периодически ищет объекты, которые ссылаются только друг на друга и не доступны извне. Объекты, признанные недостижимыми, удаляются.
Также стоит добавить, что циклический сборщик мусора делит объекты на три поколения в зависимости от того, как долго они существуют в памяти. Новые объекты помещаются в первое поколение. Если они сохраняются после очередного процесса сбора мусора, то перемещаются в следующее по старшинству поколение. Объекты в более старших поколениях проверяются реже.
Библиотека задач по Python
✍🏻 Что такое фабрика декораторов?
Фабрика декораторов — это особая разновидность функции высшего порядка, которая возвращает декоратор вместо прямого результата. Главное отличие фабрики декораторов от обычного декоратора в том, что она принимает аргументы, которые могут конфигурировать логику декоратора.
Например, фабрика может принимать имя лог-файла, в который будет производиться запись при вызове декорируемой функции. Или уровень логирования вместо простой записи всех вызовов.
Такой подход позволяет создавать переиспользуемые и гибко настраиваемые декораторы для решения разных задач.
Главные преимущества фабрик декораторов — это возможность абстрагироваться от конкретики реализации, избежать дублирования кода и создавать интуитивный API для декораторов с настройками.
Библиотека задач по Python
Фабрика декораторов — это особая разновидность функции высшего порядка, которая возвращает декоратор вместо прямого результата. Главное отличие фабрики декораторов от обычного декоратора в том, что она принимает аргументы, которые могут конфигурировать логику декоратора.
Например, фабрика может принимать имя лог-файла, в который будет производиться запись при вызове декорируемой функции. Или уровень логирования вместо простой записи всех вызовов.
Такой подход позволяет создавать переиспользуемые и гибко настраиваемые декораторы для решения разных задач.
Главные преимущества фабрик декораторов — это возможность абстрагироваться от конкретики реализации, избежать дублирования кода и создавать интуитивный API для декораторов с настройками.
Библиотека задач по Python
👍1
В каких ситуациях возникает исключение NotImplementedError?
Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были реализованы. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.
Библиотека задач по Python
Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были реализованы. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.
Библиотека задач по Python
Каким будет результат следующего выражения: -31 % 10?
Результатом выражения -31 % 10 будет 9. Это происходит потому, что для отрицательных чисел оператор % возвращает остаток от деления первого числа на второе немного другим образом. -31 % 10 = -3 — 1/10 и в ответ мы получим 10 — 1 = 9.
Библиотека задач по Python
Результатом выражения -31 % 10 будет 9. Это происходит потому, что для отрицательных чисел оператор % возвращает остаток от деления первого числа на второе немного другим образом. -31 % 10 = -3 — 1/10 и в ответ мы получим 10 — 1 = 9.
Библиотека задач по Python
🧐 Зоопарк моделей в ML: с чего начать?
Открываешь статью по машинному обучению — и в тебя летят слова: трансформеры, бустинги, SVM, регрессии.
Кажется, придётся учить всё это, иначе в ML не пустят.
Хорошая новость: 90% задач можно закрыть 2–3 классическими методами. Разберёшь их — уже сможешь собирать работающие проекты. А хайповые названия подождут.
Важно: не распыляйся на всё подряд. Начни с базового — это фундамент, на котором держится остальное.
👉 Успей попасть на курс «ML для старта в Data Science» (https://clc.to/Y2cDww)
Открываешь статью по машинному обучению — и в тебя летят слова: трансформеры, бустинги, SVM, регрессии.
Кажется, придётся учить всё это, иначе в ML не пустят.
Хорошая новость: 90% задач можно закрыть 2–3 классическими методами. Разберёшь их — уже сможешь собирать работающие проекты. А хайповые названия подождут.
Важно: не распыляйся на всё подряд. Начни с базового — это фундамент, на котором держится остальное.
👉 Успей попасть на курс «ML для старта в Data Science» (https://clc.to/Y2cDww)
Какое утверждение верно для работы с замыканиями и областями видимости в Python при использовании nonlocal и global?
👾 — nonlocal и global изменяют значение переменной только в момент объявления функции, а не при выполнении
👍 — nonlocal ищет переменную в ближайшей внешней области видимости, не включая глобальную, и изменяет её по ссылке
🥰 — global и nonlocal идентичны в поведении, но nonlocal можно использовать только внутри вложенных функций
⚡️ — Если переменная помечена как nonlocal, Python создаёт новую переменную в замыкании, не затрагивая внешнюю
Библиотека задач по Python
👾 — nonlocal и global изменяют значение переменной только в момент объявления функции, а не при выполнении
👍 — nonlocal ищет переменную в ближайшей внешней области видимости, не включая глобальную, и изменяет её по ссылке
🥰 — global и nonlocal идентичны в поведении, но nonlocal можно использовать только внутри вложенных функций
⚡️ — Если переменная помечена как nonlocal, Python создаёт новую переменную в замыкании, не затрагивая внешнюю
Библиотека задач по Python
📺 Хватит коллекционировать туториалы!
Десятки роликов по ML, сотни вкладок, папка «Посмотреть позже» трещит по швам. В голове — обрывки знаний о нейросетях и Pandas.
Знания без системы — это просто «шум». Они не превращаются в навыки и проекты.
Наш курс «ML для старта в Data Science» — это не ещё один туториал. Это система. Чёткий путь от «каши» в голове до первого сильного проекта в портфолио.
И да, чтобы старт был ещё проще — при покупке курса по ML вы получаете курс по Python в подарок
👉 Превратите «шум» в навык (https://clc.to/jWS1pw)
А вы сталкивались с «информационной кашей»? Как выбирались? 👇
Десятки роликов по ML, сотни вкладок, папка «Посмотреть позже» трещит по швам. В голове — обрывки знаний о нейросетях и Pandas.
Знания без системы — это просто «шум». Они не превращаются в навыки и проекты.
Наш курс «ML для старта в Data Science» — это не ещё один туториал. Это система. Чёткий путь от «каши» в голове до первого сильного проекта в портфолио.
И да, чтобы старт был ещё проще — при покупке курса по ML вы получаете курс по Python в подарок
👉 Превратите «шум» в навык (https://clc.to/jWS1pw)
А вы сталкивались с «информационной кашей»? Как выбирались? 👇