Python вопросы с собеседований
20.8K subscribers
332 photos
4 videos
16 files
270 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит
Download Telegram
Что такое Docker?

Docker — это платформа с открытым исходным кодом, которая позволяет разработчикам упаковывать приложения и их зависимости в самодостаточные единицы, называемые контейнерами. Docker обеспечивает согласованную и воспроизводимую среду, гарантируя последовательную работу приложения в различных системах, независимо от базовой инфраструктуры.

Docker используется в самых разных сценариях и отраслях благодаря своей универсальности и преимуществам. Некоторые распространенные случаи использования включают:

Развертывание приложений: Docker упрощает процесс развертывания, предоставляя согласованную и воспроизводимую среду.
Архитектура микросервисов: Docker часто используется в микросервисных архитектурах, где приложения разбиваются на более мелкие, независимые сервисы.
Непрерывная интеграция и непрерывное развертывание (CI/CD): Docker широко используется в конвейерах CI/CD для обеспечения последовательных и воспроизводимых сборок и развертываний.
Среды разработки и тестирования: Docker упрощает создание сред разработки и тестирования за счет инкапсуляции необходимых зависимостей в контейнеры.
Масштабируемость и балансировка нагрузки: Docker облегчает горизонтальное масштабирование приложений за счет параллельного запуска нескольких контейнеров.
Гибридные и мультиоблачные развертывания: Контейнеры Docker обеспечивают гибкость при развертывании приложений в различных средах, включая локальную инфраструктуру, публичные облака или гибридные облачные системы.
#вопросы_с_собеседований
🖥 В чем разница между итератором и генератором?

В
Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.

🔘Итераторы — это объекты, которые реализуют методы __iter__() и __next__(). Метод __iter__() возвращает сам итератор, а __next__() — следующий элемент коллекции. Если элементы заканчиваются, __next__() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.

🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.

#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Meta в классах Django?

Django использует метаклассы. А метаклассы — это классы, которые конструируют другие классы. Соответственно, когда Django конструирует наш класс, он делает это с помощью своего метакласса. Внутренний класс с названием Meta позволяет задать этому конструктору необходимые нам параметры.

🪅Например, мы можем перезаписать имя таблицы, используя db_table в классе Meta. А ещё изменить порядок полей нашей модели.
from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)

class Meta:
db_table = 'product_table'
ordering = ['-created_at']


#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем нужно ключевое слово async в Python?

Ключевое слово async в Python используется для создания асинхронных функций (или корутин), которые позволяют выполнять задачи, не блокируя основной поток выполнения программы. Это особенно полезно для работы с такими операциями, как сетевые запросы, взаимодействие с базами данных или чтение/запись файлов.

Вот пример асинхронной функции:
import asyncio

async def fetch_data():
print("Fetching data...")
await asyncio.sleep(2) # симуляция длительной операции
print("Data fetched")
return "Data"

async def main():
result = await fetch_data()
print(result)

# запуск асинхронной функции
asyncio.run(main())

Как можно заметить, async идёт в паре с await, который приостанавливает выполнение fetch_data до завершения asyncio.sleep(2).

#вопросы_с_собеседований
✍️ Что такое match-case в Python

Конструкцию match-case ещё называют pattern matching (сопоставление с шаблонами). Суть её заключается в следующем:

Оператор match принимает выражение и сравнивает его значение с последовательными шаблонами, заданными как один или несколько блоков case.

Код с match-case более структурирован и легче читается по сравнению с кодом, где прописано большое количество вложенных условий.

#вопросы_с_собеседований
Обмен ключами и значениями словаря

Итак, насколько сложно поменять местами значения и ключи в словаре? Совсем несложно, по крайней мере, в Python.

Выше представлен действительно изящный способ манипулирования словарями.


#вопросы_с_собеседований
💩 Какова разница между методами __getattr__ и __getattribute__?

Оба этих метода являются магическими.

🔘__getattr__

class Missing:
attr = 42

def __getattr__(self, name):
print(f"In __getattr__, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In __getattr__, asked for xyz; 73

Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.

🔘__getattribute__

class Always:
attr = 42

def __getattribute__(self, name):
print(f"In __getattribute__, asked for {name}")
return 73

a = Always()
print(a.attr) # In __getattribute__, asked for attr; 73
print(a.xyz) # In __getattribute__, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

Таким образом, __getattribute__ — это метод, который управляет всеми запросами атрибутов, тогда как __getattr__ вызывается, когда __getattribute__ не находит атрибут.

#вопросы_с_собеседований

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM