Для измерения покрытия кода тестами используется библиотека
Метрика показывает, какая часть кода была выполнена во время тестов. Можно исключить файлы через
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
coverage
.
coverage run -m pytest # Запуск тестов с отслеживанием покрытия
coverage report # Вывод отчета в консоль
coverage html # Генерация HTML-отчета
Метрика показывает, какая часть кода была выполнена во время тестов. Можно исключить файлы через
.coveragerc
. Оптимальное покрытие — 80-100%, но важнее осмысленность тестов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Функция
Эквивалентна одновременному выполнению
Полезна при разбиении значений на части (например, секунды в минуты и секунды).
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
divmod()
принимает два числа и возвращает кортеж из частного и остатка от деления.
result = divmod(10, 3) # (3, 1)
Эквивалентна одновременному выполнению
//
(целочисленное деление) и %
(остаток). Работает с целыми и вещественными числами.
divmod(10.5, 3) # (3.0, 1.5)
Полезна при разбиении значений на части (например, секунды в минуты и секунды).
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Для проверки наличия элемента в кортеже используется оператор
Аналогично работает с
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
in
, который возвращает True
или False
.
my_tuple = (1, 2, 3, 'a', 'b')
contains_two = 2 in my_tuple # True
contains_z = 'z' in my_tuple # False
Аналогично работает с
not in
для проверки отсутствия. Метод эффективен и читаем, подходит для любых итерируемых объектов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Декораторы для проверки прав доступа оборачивают функции, проверяя аутентификацию или права пользователя перед выполнением.
Пример применения:
Такой подход централизует проверки и сохраняет чистоту бизнес-логики.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
def admin_required(func):
def wrapper(user, *args, **kwargs):
if not user.is_admin:
raise PermissionError("Admin access required")
return func(user, *args, **kwargs)
return wrapper
Пример применения:
@admin_required
def delete_user(user, username):
# Логика удаления
Такой подход централизует проверки и сохраняет чистоту бизнес-логики.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Чтобы прочитать файл с определенной позиции, можно использовать метод
Метод
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
seek()
для перемещения файлового указателя перед чтением. После установки позиции данные считываются методом read()
.
with open('file.txt', 'r') as file:
file.seek(100) # Переместить указатель на 100-й байт
data = file.read() # Чтение с текущей позиции
Метод
seek()
принимает смещение в байтах, а второй аргумент (необязательный) определяет точку отсчета (0 — начало файла, 1 — текущая позиция, 2 — конец файла).Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Метод
По умолчанию
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
__dir__()
возвращает список атрибутов и методов объекта. Его можно переопределить в пользовательских классах, чтобы изменить поведение встроенной функции dir()
.
class Example:
def __dir__(self):
return ['custom_attr', 'custom_method']
obj = Example()
print(dir(obj)) # Выведет ['custom_attr', 'custom_method']
По умолчанию
__dir__()
включает атрибуты класса, его методы и унаследованные члены. Переопределение полезно для ограничения или кастомизации вывода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Функция
В Python 3.10+ рекомендуется использовать
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
asyncio.get_event_loop()
возвращает текущий событийный цикл для данного контекста выполнения. Если цикла нет, создаёт новый и устанавливает его как текущий.
loop = asyncio.get_event_loop() # Получает текущий цикл или создаёт новый
В Python 3.10+ рекомендуется использовать
asyncio.run()
для верхнеуровневого кода вместо ручного управления циклом. Метод устарел для создания новых циклов в пользу asyncio.new_event_loop()
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Оператор
Для строк проверяет наличие подстроки:
Для списков и кортежей проверяет наличие элемента:
Для словарей проверяет наличие ключа:
Также
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
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) для списков и строк.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Условие if name == "__main__": определяет, выполняется ли скрипт напрямую или импортируется как модуль. Код внутри этого блока запускается только при прямом запуске файла.
Если файл импортирован, код вне этого блока (функции, классы) будет доступен, но код внутри
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
def some_function():
print("This is a function")
if __name__ == "__main__":
print("Script executed directly")
some_function()
Если файл импортирован, код вне этого блока (функции, классы) будет доступен, но код внутри
if
не выполнится. Это полезно для тестирования и разделения логики модуля и его запуска.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
Методы __getitem__() и __setitem__() позволяют реализовать доступ к элементам объекта по индексу или ключу, как в списках или словарях.
__getitem__() вызывается при обращении obj[key], а __setitem__() — при присваивании obj[key] = value. Позволяет эмулировать поведение встроенных коллекций.
✈️ Python собеседования
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. Позволяет эмулировать поведение встроенных коллекций.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
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.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Модуль
Получение версии пакета:
Возвращает текущую версию установленного пакета.
Чтение файлов из пакета:
Загружает содержимое файла
Проверка зависимостей:
Возвращает список зависимостей для указанного пакета.
Модуль полезен для управления ресурсами и зависимостями в проектах.
✈️ Python собеседования
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")
Возвращает список зависимостей для указанного пакета.
Модуль полезен для управления ресурсами и зависимостями в проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4