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

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

Kanalga Telegram’da o‘tish

📈 Telegram kanali Python | Вопросы собесов analitikasi

Python | Вопросы собесов (@python_easy_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 13 099 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 746-o'rinni va Rossiya mintaqasida 50 691-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 13 099 obunachiga ega bo‘ldi.

11 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -60 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 9.30% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.54% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 219 marta ko‘riladi; birinchi sutkada odatda 726 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 3 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent ставь, модуль, строка, docker, alice kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

Yuqori yangilanish chastotasi (oxirgi ma’lumot 12 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

13 099
Obunachilar
-424 soatlar
-177 kunlar
-6030 kunlar
Postlar arxiv
Что такое 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