Python собеседования
1.88K subscribers
340 photos
453 links
Подготовка к собеседованиям на позицию Python-разработчик

Еще больше на сайте https://frontview-it.ru

Backend - @frontview_backend
Python работа - @frontview_python_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Метод get() используется для получения значения по ключу из словаря, возвращая None или заданное значение по умолчанию, если ключ отсутствует. Это безопасная альтернатива прямому обращению по ключу, предотвращающая исключение KeyError.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Функция asyncio.get_event_loop() возвращает текущий событийный цикл для данного контекста выполнения. Если цикла нет, создаёт новый и устанавливает его как текущий.


loop = asyncio.get_event_loop() # Получает текущий цикл или создаёт новый


В Python 3.10+ рекомендуется использовать asyncio.run() для верхнеуровневого кода вместо ручного управления циклом. Метод устарел для создания новых циклов в пользу asyncio.new_event_loop().

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Оператор in проверяет вхождение элемента в последовательность (список, кортеж, строку) или наличие ключа в словаре. Возвращает True, если элемент найден, иначе False.

Для строк проверяет наличие подстроки:

if 'hello' in 'hello world':
# True, так как подстрока 'hello' есть в строке


Для списков и кортежей проверяет наличие элемента:

if 2 in [1, 2, 3]:
# True, так как 2 есть в списке


Для словарей проверяет наличие ключа:

if 'key' in {'key': 'value'}:
# True, так как ключ 'key' существует


Также in работает с генераторами и множествами. Сложность операции зависит от типа данных: O(1) для словарей и множеств, O(n) для списков и строк.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
При работе с сетевыми запросами try-except помогает обрабатывать ошибки соединения, таймауты и некорректные ответы. Чаще всего перехватывают исключения requests.exceptions.RequestException или более конкретные, например ConnectionError, Timeout, чтобы корректно завершить запрос или повторить его.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Условие if name == "__main__": определяет, выполняется ли скрипт напрямую или импортируется как модуль. Код внутри этого блока запускается только при прямом запуске файла.


def some_function():
print("This is a function")

if __name__ == "__main__":
print("Script executed directly")
some_function()


Если файл импортирован, код вне этого блока (функции, классы) будет доступен, но код внутри if не выполнится. Это полезно для тестирования и разделения логики модуля и его запуска.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Методы __getitem__() и __setitem__() позволяют реализовать доступ к элементам объекта по индексу или ключу, как в списках или словарях.


class CustomContainer:
def __getitem__(self, key):
return self.data[key] # Возвращает значение по ключу/индексу

def __setitem__(self, key, value):
self.data[key] = value # Устанавливает значение по ключу/индексу


__getitem__() вызывается при обращении obj[key], а __setitem__() — при присваивании obj[key] = value. Позволяет эмулировать поведение встроенных коллекций.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
Классическая реализация предполагает Subject (наблюдаемый объект) и Observer (наблюдатели):

class Subject:
def __init__(self):
self._observers = []

def attach(self, observer):
self._observers.append(observer)

def notify(self, message):
for observer in self._observers:
observer.update(message)


class Observer:
def update(self, message):
print(f"Received: {message}")


Ключевые моменты:
- Subject хранит список наблюдателей и уведомляет их при изменениях
- Observer определяет интерфейс для получения обновлений
- В Python часто реализуют через события или свойства (property)

Альтернативно можно использовать модуль observable из PyPI.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Модуль pkg_resources из setuptools предоставляет инструменты для работы с ресурсами и зависимостями пакетов. Основные функции включают управление версиями, доступ к файлам внутри пакетов и проверку зависимостей.

Получение версии пакета:

import pkg_resources
version = pkg_resources.get_distribution("requests").version


Возвращает текущую версию установленного пакета.

Чтение файлов из пакета:
python  
data = pkg_resources.resource_string("my_package", "data/file.txt")


Загружает содержимое файла file.txt из пакета my_package.

Проверка зависимостей:
python  
dependencies = pkg_resources.require("requests")


Возвращает список зависимостей для указанного пакета.

Модуль полезен для управления ресурсами и зависимостями в проектах.

✈️ Python собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5