fa
Feedback
Python | Вопросы собесов

Python | Вопросы собесов

رفتن به کانال در Telegram

📈 تحلیل کانال تلگرام Python | Вопросы собесов

کانال Python | Вопросы собесов (@python_easy_ru) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 13 099 مشترک است و جایگاه 9 746 را در دسته فناوری و برنامه‌ها و رتبه 50 691 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 13 099 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 11 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -60 و در ۲۴ ساعت گذشته برابر -4 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 9.30% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.54% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 219 بازدید دریافت می‌کند. در اولین روز معمولاً 726 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 3 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند ставь, модуль, строка, docker, alice تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 12 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

13 099
مشترکین
-424 ساعت
-177 روز
-6030 روز
آرشیو پست ها
Что такое Docker ? Спросят с вероятностью 10% Docker - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковывать приложения и все их зависимости в единую среду, что делает их переносимыми и масштабируемыми. Эта платформа предоставляет инструменты для создания, развертывания и управления контейнерами, облегчая процесс разработки и упрощая конфигурацию среды выполнения приложений. Основные концепции Docker включают: 1️⃣ Контейнеры: Нужны для упаковки приложений и их зависимостей в единую среду. Контейнеры изолированы друг от друга и от хост-системы, что обеспечивает надежную и консистентную среду выполнения приложений. 2️⃣ Образы: Шаблоны для создания контейнеров. Они включают в себя все необходимые компоненты приложения и его зависимости. Образы могут быть созданы вручную или автоматически с использованием Dockerfile, который описывает конфигурацию контейнера. 3️⃣ Dockerfile: Текстовый файл, который содержит инструкции для создания образа. Он определяет все этапы установки и настройки приложения в контейнере, что позволяет автоматизировать процесс создания образов. 4️⃣ Реестр Docker: Сервис, который хранит образы. Он позволяет разработчикам делиться образами и использовать их для создания контейнеров на различных хост-системах. 5️⃣ Docker Engine: Основной компонент, который управляет созданием, запуском и управлением контейнерами. Он включает в себя клиентские и серверные компоненты, которые общаются между собой с помощью API. 6️⃣ Docker Compose: Инструмент для определения и запуска многоконтейнерных приложений. Он позволяет определять структуру приложения и его зависимости в файле docker-compose.yml, что упрощает развертывание и управление многочастными приложениями. Docker облегчает процесс разработки, тестирования и развертывания приложений, обеспечивая консистентную и изолированную среду выполнения для приложений. Он также позволяет масштабировать приложения и обеспечивать их высокую доступность с помощью контейнерной оркестрации, такой как Kubernetes. ➡ Примеры ответовСписок всех вопросов на Python Developer

Python - первый обучающий! Погружение в язык, без унылой теории и устаревших материалов. Более 1000 разных тестов по питону,
Python - первый обучающий! Погружение в язык, без унылой теории и устаревших материалов. Более 1000 разных тестов по питону, интерактивные упражнения с кодом и их разбор для подписчиков (топ идея, как нам кажется). ▪️30 лучших бесплатных Python курсов 2024 года ▪️Коллекция полезных скриптов на Python ▪️Скрипты для хакинга И многое другое А здесь я собрал супер полезную папку для всех, кто любит Python. Подписывайтесь, такие знания на все золота: @pythonl

Материалы из этого канала дают на платных курсах Frontend Portal — настоящий портал для тех кто хочет стать востребованным fr
+3
Материалы из этого канала дают на платных курсах Frontend Portal — настоящий портал для тех кто хочет стать востребованным frontend-разработчиком. Полезные ресурсы, шпаргалки, разбор вопросов с собеседований, задачи, викторины и многое другое 👉 Присоединяйтесь к @FrontendPortal и станьте частью дружного frontend-комьюнити!

Какая в Python типизация, статическая или динамичная ? Спросят с вероятностью 7% Типизация является динамической, что означает, что типы переменных определяются во время выполнения программы, а не на этапе компиляции. Другими словами, не требуется явно указывать тип переменной при ее объявлении; тип переменной определяется автоматически во время выполнения на основе ее значения. Пример:
x = 10         # x является целым числом (int)
x = "Hello"    # x теперь является строкой (str)
x = [1, 2, 3]  # x теперь является списком (list)
Это означает, что переменная x может содержать значения разных типов в разные моменты времени выполнения программы. В статической типизации, наоборот, типы переменных должны быть объявлены явно при их объявлении и не могут изменяться во время выполнения программы. Это делает статическую типизацию более строгой и обычно помогает предотвратить некоторые типичные ошибки в коде на этапе компиляции. ➡ Примеры ответовСписок всех вопросов на Python Developer

💎 PyLinux - канал для тех, кто интересуется всем, что связано с Python и Linux! 👉 Почему не стоит упустить: - доступный мат
💎 PyLinux - канал для тех, кто интересуется всем, что связано с Python и Linux! 👉 Почему не стоит упустить: - доступный материал Linux - библиотеки и скрипты Python - книги и полезный софт - bash и многое другое! 🔥 Заходи прямо сейчас, чтобы не потерять - PyLinux!

Какие существуют типы HTTP запросов и в чем их отличия ? Спросят с вероятностью 10% Существует несколько типов HTTP-запросов, каждый из которых выполняет определенную операцию при взаимодействии клиента с сервером. Вот основные из них и их отличия: 1️⃣ GET: Запрашивает представление ресурса. Этот тип запроса используется для получения данных от сервера. Обычно он не должен иметь побочных эффектов на данные на сервере, и его можно кэшировать. Пример использования - получение страницы веб-сайта. 2️⃣ POST: Отправляет данные для обработки на сервере. Обычно используется для отправки данных HTML-формы на сервер для обработки. Этот тип запроса может иметь побочные эффекты на данные на сервере и не должен кэшироваться. Пример использования - отправка формы с данными для создания нового пользователя. 3️⃣ PUT: Загружает содержимое запроса на указанный URI. Если ресурс существует, он перезаписывается. Если ресурс не существует, сервер может создать его с использованием предоставленных данных. Пример использования - обновление существующего ресурса с определенными данными. 4️⃣ DELETE: Удаляет указанный ресурс. Пример использования - удаление записи из базы данных. 5️⃣ PATCH: Применяет частичные модификации к ресурсу. Обычно используется для обновления ресурса с частичными данными. Пример использования - изменение только определенных полей записи в базе данных. 6️⃣ HEAD: Запрашивает заголовки, которые будут возвращены, как если бы был сделан запрос GET, но без тела ответа. Этот тип запроса часто используется для проверки доступности ресурса или получения информации о ресурсе без загрузки его полного содержимого. 7️⃣ OPTIONS: Используется для запроса возможностей и параметров коммуникации для указанного ресурса. Например, сервер может использовать этот тип запроса для сообщения клиенту о поддерживаемых методах запросов или разрешенных заголовках. 8️⃣ TRACE: Используется для тестирования соединения по маршруту к ресурсу. Он выполняет циклический обход маршрутизации, который включает в себя передачу запроса через все узлы маршрута. Этот метод редко используется в реальных приложениях из-за возможности злоумышленного использования. Каждый из этих типов запросов имеет свои особенности и подходит для определенных сценариев использования.Выбор конкретного типа зависит от требуемого действия и контекста взаимодействия с сервером. ➡ Примеры ответовСписок всех вопросов на Python Developer

Что известно про иерархию исключений ? Спросят с вероятностью 7% Иерархия исключений представляет собой организацию встроенных исключений в иерархическую структуру, которая облегчает обработку ошибок и исключительных ситуаций в программе. Все они наследуются от базового класса BaseException. Ниже приведена общая иерархия исключений: 1️⃣ BaseException - Exception - ArithmeticError - ZeroDivisionError: Вызывается при делении на ноль. - OverflowError: Вызывается, когда результат арифметической операции слишком велик для представления. - FloatingPointError: Вызывается при выполнении недопустимой арифметической операции с плавающей точкой. - AttributeError: Вызывается при попытке доступа к несуществующему атрибуту объекта. - EOFError: Вызывается, когда достигнут конец файла. - IOError: Вызывается при возникновении ошибок ввода-вывода. - ImportError: Вызывается при неудачной попытке импорта модуля. - KeyError: Вызывается при попытке доступа к несуществующему ключу словаря. - TypeError: Вызывается при попытке выполнения операции с объектом несовместимого типа. - ValueError: Вызывается, когда функция получает аргумент правильного типа, но недопустимого значения. - RuntimeError: Вызывается в случае внутренней ошибки интерпретатора. - StopIteration: Вызывается при достижении конца итератора в операциях итерации. - KeyboardInterrupt: Вызывается при нажатии пользователем комбинации клавиш прерывания (обычно Ctrl+C). 2️⃣ SystemExit: Вызывается при завершении программы с помощью функции sys.exit(). 3️⃣ KeyboardInterrupt: Вызывается при прерывании программы пользователем (обычно Ctrl+C). 4️⃣ GeneratorExit: Вызывается при закрытии генератора. 5️⃣ Exception: Базовый класс для всех встроенных исключений. Использование исключений позволяет ловить и обрабатывать ошибки и исключения в программе, что делает код более надежным и стабильным. Вы можете использовать блоки try, except, else и finally для обработки исключений. ➡ Примеры ответовСписок всех вопросов на Python Developer

Repost from N/a
Ну что, к этому ролику я шел чуть больше года и он готов https://youtu.be/3SjvLyRzXvo Много было моментов удалить его и не показывать, за некоторые части рассказа мне действительно стыдно. Но жизнь есть жизнь, может быть она вас убережёт от тех ошибок, которые я наделал Всем всего хорошего и удачки по жизни❤️

Ребят, мой кореш выложил видео на YouTube, где рассказывает, как он перешел с работы охранника на Python-разработчика. Это реальная история о том, как можно сменить профессию и найти то, что тебе по-настоящему нравится, даже если кажется, что поздно что-то менять. Видео полезно для тех, кто думает о смене карьеры. Посмотрите, может вдохновит!

Какие существуют коды ответов HTTP ? Спросят с вероятностью 10% HTTP (Hypertext Transfer Protocol) определяет различные коды ответов, которые сервер может отправить клиенту в ответ на запрос. Вот некоторые из наиболее распространенных кодов ответов их общее значение: 1️⃣ 1xx (Информационные коды): - 100 Continue: Запрос был принят, клиент может продолжать запрос. - 101 Switching Protocols: Сервер согласился изменить протоколы. 2️⃣ 2xx (Успешные коды): - 200 OK: Запрос успешно выполнен. - 201 Created: Запрос успешно выполнен, и был создан новый ресурс. - 204 No Content: Запрос выполнен успешно, но в ответе нет содержимого. 3️⃣ 3xx (Перенаправления): - 301 Moved Permanently: Ресурс перемещен на постоянной основе. - 302 Found: Ресурс временно перемещен. - 304 Not Modified: Ресурс не был изменен с момента последнего запроса. 4️⃣ 4xx (Коды ошибок клиента): - 400 Bad Request: Запрос не может быть обработан из-за ошибки в запросе клиента. - 401 Unauthorized: Клиент должен предоставить аутентификацию для получения доступа к ресурсу. - 404 Not Found: Ресурс не найден. 5️⃣ 5xx (Коды ошибок сервера): - 500 Internal Server Error: Общая внутренняя ошибка сервера. - 503 Service Unavailable: Сервер временно не доступен из-за перегрузки или обслуживания. Это лишь несколько из множества кодов ответов HTTP. Каждый код имеет свое значение, и их правильное использование позволяет клиенту и серверу взаимодействовать эффективно и информативно. ➡ Примеры ответовСписок всех вопросов на Python Developer

Какие декораторы есть в стандартной библиотеке ? Спросят с вероятностью 7% В стандартной библиотеке есть несколько встроенных декораторов, которые используются для различных целей. Вот некоторые из наиболее часто используемых: 1️⃣ @staticmethod: Используется для объявления статического метода в классе. Они не привязаны к экземпляру класса и могут быть вызваны непосредственно через класс или через экземпляр. 2️⃣ @classmethod: Используется для объявления метода класса. Принимает класс (вместо экземпляра) как первый аргумент и может быть использован для работы с атрибутами класса. 3️⃣ @property: Используется для создания свойства (property) в классе. Это позволяет объявить метод как атрибут класса, который может быть доступен как атрибут экземпляра класса, но в фоне вызывает метод для получения или установки значения. 4️⃣ @abstractmethod: Используется в абстрактных классах для указания метода, который должен быть реализован в подклассах. Если подкласс не реализует этот метод, при попытке создания экземпляра подкласса возникнет ошибка. 5️⃣ @functools.wraps: Используется для копирования метаданных (например, имени функции, документации) из одной функции в другую. Это полезно, когда вы создаете декораторы, которые оборачивают другие функции. 6️⃣ @lru_cache: Используется для кэширования результатов функции с использованием алгоритма "Least Recently Used" (LRU). Это помогает улучшить производительность функций с дорогостоящими вычислениями путем сохранения результатов предыдущих вызовов функции. Это лишь несколько примеров декораторов, доступных в стандартной библиотеке. Но существует множество других декораторов, реализованных в сторонних библиотеках и фреймворках, которые предоставляют дополнительные возможности и функциональность. ➡ Примеры ответовСписок всех вопросов на Python Developer

Для чего нужен сериализатор ? Спросят с вероятностью 10% Сериализатор - это инструмент, который преобразует объекты в определенном формате в формат, который можно легко сохранить или передать через сеть, и обратно. Обычно это используется для передачи данных между различными программами или процессами, работающими на разных устройствах или языках программирования. Вот несколько причин, по которым сериализаторы могут быть полезными: 1️⃣ Сохранение и загрузка данных: Сериализация позволяет сохранять данные в файле или в базе данных в виде сериализованного объекта, что упрощает их сохранение и восстановление позже. 2️⃣ Обмен данными между приложениями: Приложения, написанные на разных языках программирования или работающие на разных платформах, могут использовать сериализацию для передачи данных друг другу в стандартизированном формате. 3️⃣ Передача данных по сети: Передача сложных структур данных между клиентом и сервером в сетевых приложениях может быть реализована с использованием сериализации. Например, веб-сервисы часто используют форматы сериализации, такие как JSON или XML, для обмена данными между клиентом и сервером. 4️⃣ Хранение состояния приложения: Сериализация может использоваться для сохранения состояния приложения, например, приложений игр, что позволяет пользователям сохранять свой прогресс и возобновлять игру позже. 5️⃣ Кэширование данных: Сериализация может использоваться для кэширования сложных данных, чтобы ускорить доступ к ним и сократить время обработки в будущем. Обычно стелизаторы поддерживают различные форматы, такие как JSON, XML, YAML, Pickle и другие, каждый из которых имеет свои особенности и применение в зависимости от конкретной задачи. ➡ Примеры ответовСписок всех вопросов на Python Developer

Как устроены переменные ? Спросят с вероятностью 7% Переменные являются именованными областями памяти, в которых хранятся значения данных. Устройство переменных обычно содержат следующие элементы: 1️⃣ Имя переменной: Это идентификатор, который используется для обращения к значению данных в памяти. 2️⃣ Значение данных: Это фактическое значение, которое хранится в переменной. Может быть целое число, строка, список, объект и так далее, в зависимости от типа данных, который поддерживает язык программирования. 3️⃣ Адрес в памяти: Это место в памяти компьютера, где хранится значение данных переменной. Иногда можно получить адрес переменной с помощью оператора &. 4️⃣ Тип данных: Это информация о том, какого типа данных содержится в переменной. Тип данных определяет, какие операции могут быть выполнены с переменной и как она хранится в памяти. 5️⃣ Область видимости: Это часть программы, в которой переменная может быть использована. Обычно переменные имеют локальную область видимости в пределах блока кода, в котором они были определены, но также могут иметь глобальную область видимости, доступную во всей программе. 6️⃣ Жизненный цикл: Это период времени, в течение которого переменная существует в памяти. Переменные могут быть созданы, использованы и уничтожены в разное время в зависимости от их области видимости и действий программы. Обычно переменные управляются средой выполнения языка программирования, которая отвечает за выделение и освобождение памяти, управление областями видимости и обработку других аспектов жизненного цикла переменных. ➡ Примеры ответовСписок всех вопросов на Python Developer

Python компилируемый или интерпретируемый ? Спросят с вероятностью 13% Python является интерпретируемым языком программирования, но утверждать, что он полностью интерпретируемый, не совсем верно, поскольку есть некоторые аспекты компиляции. Процесс выполнения программы обычно выглядит следующим образом: 1️⃣ Интерпретация и компиляция: Исходный код сначала проходит через процесс компиляции в промежуточный байт-код. Это выполняется интерпретатором при запуске программы. В результате компиляции создается файл .pyc, который содержит байт-код программы. 2️⃣ Исполнение: Затем интерпретатор исполняет этот байт-код последовательно, инструкция за инструкцией. Во время выполнения интерпретатор обрабатывает и выполняет инструкции, предоставляя ожидаемый результат. Python является интерпретируемым языком с компиляцией в промежуточный байт-код, который затем интерпретируется и выполняется. Этот подход сочетает в себе преимущества интерпретации (гибкость, динамическая типизация) с некоторыми преимуществами компиляции (более быстрое выполнение благодаря использованию байт-кода). Однако стоит отметить, что существуют и другие реализации Python, такие как PyPy, которые используют JIT (Just-In-Time) компиляцию для более эффективного выполнения кода. Каждая реализация может иметь свои особенности и характеристики в этом отношении. ➡ Примеры ответовСписок всех вопросов на Python Developer

В чем разница между процессом и потоком ? Спросят с вероятностью 7% Процессы и потоки - это два основных понятия, используемые в многозадачных системах, таких как операционные системы. Они представляют собой способы организации выполнения программного кода. Вот основные различия между ними: 1️⃣ Процесс: - Представляет собой отдельный экземпляр программы, запущенный в оперативной памяти компьютера. - У каждого процесса есть собственное адресное пространство памяти, которое оно использует для выполнения своего кода и хранения своих данных. - Являются изолированными друг от друга, что означает, что изменения, сделанные в одном процессе, не влияют на другие процессы. - Обычно создаются операционной системой при запуске новой программы. 2️⃣ Поток: - Представляет собой легковесный подпроцесс внутри процесса. - Разделяют общее адресное пространство памяти с другими потоками в рамках одного процесса. - Имеют свой собственный стек вызовов, но разделяют все остальные ресурсы процесса, такие как файловые дескрипторы, переменные и т. д. - Могут выполняться параллельно в рамках одного процесса, что позволяет использовать многопоточное программирование для увеличения производительности и ресурсоэффективности. Основное различие между процессом и потоком заключается в том, что процесс является отдельным исполняемым экземпляром программы с собственным адресным пространством памяти, а поток представляет собой легковесный подпроцесс, который работает в рамках процесса и использует общие ресурсы этого процесса. ➡ Примеры ответовСписок всех вопросов на Python Developer

Как реализован декоратор ? Спросят с вероятностью 7% Декораторы реализованы как функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию. Это позволяет изменять поведение или добавлять функциональность существующим без изменения их исходного кода. Вот пример простого декоратора:
def my_decorator(func):
    def wrapper():
        print("Дополнительный код перед вызовом функции")
        func()
        print("Дополнительный код после вызова функции")
    return wrapper

@my_decorator
def say_hello():
    print("Привет, мир!")

say_hello()
В этом примере my_decorator является декоратором, который принимает функцию func и возвращает функцию wrapper, которая содержит дополнительный код перед и после вызова функции func. Затем мы используем декоратор @my_decorator, чтобы применить его к функции say_hello. Это простейший пример декоратора. В более сложных случаях декораторы могут принимать аргументы и использоваться для различных целей, таких как кеширование, логирование, обработка исключений и т. д. Декораторы широко используются и являются мощным механизмом для добавления функциональности к коду без его модификации. ➡ Примеры ответовСписок всех вопросов на Python Developer

3, 2 … Остановимся здесь. 🐍 Потому что 2 недель достаточно, чтобы познакомиться с основами Python и понять, подходит ли вам
3, 2 … Остановимся здесь. 🐍 Потому что 2 недель достаточно, чтобы познакомиться с основами Python и понять, подходит ли вам это направление! Не обещаем, что будет легко, но интересно, полезно и недорого (всего 990 рублей!) — гарантируем. Расклад такой: мы даем вам базу — больше 70 уроков, вебинары, лайвкодинг, а вы пишете собственную программу. Если переживайте — не переживайте :) Рядом всегда будет наставник, готовый ответить на любой ваш вопрос. ⏰ Старт курса уже 21 марта, присоединяйтесь!

Что такое slots ? Спросят с вероятностью 13% slots - это механизм, который позволяет явно определить ограниченный набор атрибутов (полей) для экземпляров класса. Обычно атрибуты экземпляров создаются динамически при их присваивании, что может приводить к потреблению памяти, особенно при работе с большим количеством экземпляров класса. Когда вы определяете slots для класса, то определяете фиксированный набор атрибутов, которые могут существовать для экземпляров этого класса. Это позволяет экономить память и улучшать производительность, особенно в случае, когда у вас есть много экземпляров класса. Пример:
class MyClass:
    slots = ['x', 'y']

    def init(self, x, y):
        self.x = x
        self.y = y

obj = MyClass(10, 20)
print(obj.x)  # Вывод: 10
print(obj.y)  # Вывод: 20

# Попытка присвоить атрибут, не определенный в slots, вызовет ошибку
# obj.z = 30  # Вызовет AttributeError
В этом примере у класса MyClass есть определение slots, которое ограничивает атрибуты экземпляра класса только x и y. Попытка присвоить значение атрибуту z вызовет ошибку AttributeError. Важно отметить, что использование slots может иметь смысл только в тех случаях, когда вы уверены, что ограничение набора атрибутов не вызовет проблем в приложении. ➡ Примеры ответовСписок всех вопросов на Python Developer

Бесплатный мини-курс для тех, кто интересуется Python! Минимум скучной теории — больше мощной практики на реальных задачах ра
Бесплатный мини-курс для тех, кто интересуется Python! Минимум скучной теории — больше мощной практики на реальных задачах разработчиков. Один мини-курс — сразу 4 проекта в портфолио! Запись по ссылке: https://epic.st/klc4K?erid=2VtzquyBwoJ За 4 занятия вы изучите видеоматериалы. После каждого видео есть практическое задание. — Разберёте базовый синтаксис языка — Создадите бота для Telegram, который умеет переводить голос в текст — Сделаете бота умнее — научите его обрабатывать фотографии — Узнаете, как парсить сайты — Напишете сайт с помощью инструмента Flask В финале мини-курса вас ждёт прямой эфир с экспертом Анастасией Борневой — руководителем направления по исследованию данных в «Сбере». В прямом эфире она поделится профессиональными секретами, разберёт ваши работы и ответит на вопросы. Вас ждут крутые подарки: чек-листы, гайды, скринкасты и другие бонусы. Откройте новые возможности! Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880

В чем разница между copy() и deepcopy() ? Спросят с вероятностью 7% Функции copy() и deepcopy() используются для создания копий объектов, но есть существенная разница в том, как они копируют вложенные объекты. 1️⃣ copy(): - Создает поверхностную копию объекта. Это означает, что копируется только сам объект и его первый уровень вложенных объектов, но не их вложенные объекты. - Если вы измените вложенные объекты в исходном объекте, эти изменения будут отражены и в его копии, так как они оба будут ссылаться на одни и те же вложенные объекты. - Используется, когда вам нужна поверхностная копия объекта, и вы уверены, что вложенные объекты не будут изменяться. 2️⃣ deepcopy(): - Создает глубокую копию объекта. Это означает, что копируются как сам объект, так и все его вложенные объекты, рекурсивно, до тех пор, пока не будут скопированы все объекты внутри объекта. - Глубокая копия полезна, когда вам нужно создать копию объекта, включая все его вложенные объекты, и вы не хотите, чтобы изменения в исходном объекте отражались на его копии и наоборот. - Однако глубокие копии могут быть более затратными по памяти и времени, особенно если объект содержит много вложенных объектов. Пример использования copy() и deepcopy():
import copy

original_list = [1, [2, 3], 4]

shallow_copy = copy.copy(original_list)
deep_copy = copy.deepcopy(original_list)

original_list[1][0] = 5  # Изменение вложенного списка

print(original_list)    # Вывод: [1, [5, 3], 4]
print(shallow_copy)     # Вывод: [1, [5, 3], 4]
print(deep_copy)        # Вывод: [1, [2, 3], 4]
В этом примере shallow_copy является поверхностной копией original_list, а deep_copy — глубокой копией. При изменении вложенного списка в original_list это отражается на shallow_copy, но не на deep_copy. ➡ Примеры ответовСписок всех вопросов на Python Developer