try-except
позволяет перехватывать и обрабатывать ошибки ввода-вывода, такие как FileNotFoundError
или PermissionError
.
try:
with open('file.txt', 'r') as file:
data = file.read()
except FileNotFoundError:
print("Файл не найден")
except IOError:
print("Ошибка чтения файла")
Блок
try
выполняет потенциально опасный код, а except
ловит конкретные исключения. Можно обрабатывать несколько типов ошибок или использовать общий except IOError
для всех операций ввода-вывода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
def log_generator(func):
def wrapper(*args, **kwargs):
print("Generator started")
gen = func(*args, **kwargs)
for value in gen:
print(f"Yielded: {value}")
yield value
return wrapper
@log_generator
def count_to(n):
for i in range(n):
yield i
Декоратор
log_generator
перехватывает вызов генератора, логирует его запуск и каждое yielded значение. Важно, чтобы обёртка сама возвращала генератор, иначе потеряется ленивое выполнение.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
{}
или функции set()
. Элементы должны быть уникальными и неизменяемыми.
unique_numbers = {1, 2, 3} # Литерал множества
empty_set = set() # Пустое множество (не {} — это словарь)
Для преобразования списка или строки во множество используется
set()
, автоматически удаляющий дубликаты.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод
Лучше использовать контекстные менеджеры (with) или явные методы типа
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
__del__()
вызывается при удалении объекта сборщиком мусора, но его выполнение не гарантируется и зависит от реализации интерпретатора. Не рекомендуется полагаться на него для критически важных операций, таких как освобождение ресурсов.
class Resource:
def __del__(self):
print("Resource released") # Вызывается не всегда
Лучше использовать контекстные менеджеры (with) или явные методы типа
close()
для управления ресурсами.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
pow()
принимает два или три аргумента: основание, степень и необязательный модуль. Возвращает результат возведения в степень, а при наличии модуля — остаток от деления.
result = pow(2, 3) # 2 в степени 3 → 8
mod_result = pow(2, 3, 3) # (2³) % 3 → 2
Альтернатива оператору
**
, но с поддержкой модульной арифметики.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
класс django.db.models
.Model, где атрибуты класса представляют поля таблицы. Каждое поле создаётся экземпляром соответствующего класса (CharField, Intege
rField и т.д.) с указанием параметров.
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
После определения модели необходимо создать и применить миграции для генерации таблицы в БД.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
from django.http import JsonResponse
def get_data(request):
return JsonResponse({'data': 'success'}, status=200) # Успешный запрос
Использование правильных статусов улучшает согласованность API и обработку ошибок.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
def test_addition():
assert 2 + 2 == 4 # Простой assert для проверки логики
Использование
setup
и teardown
методов помогает подготовить и очистить окружение. Моки и стабы изолируют тестируемый модуль от зависимостей.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Для установки пакета через pip используется команда
Флаг
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
pip install
с указанием имени пакета и опционально версии.
pip install requests # Установка последней версии
pip install django==4.2 # Конкретная версия
pip install -r requirements.txt # Установка из файла
Флаг
--user
устанавливает пакет для текущего пользователя, -e
- в режиме разработки.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
class SubsystemA:
def operation_a(self):
return "Subsystem A"
class Facade:
def __init__(self):
self._subsystem_a = SubsystemA()
def operation(self):
return f"Facade: {self._subsystem_a.operation_a()}"
Клиент работает только с Facade, не зная о внутренней реализации. Упрощает использование сложных систем.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
authlib
или oauthlib
, интегрирующиеся с популярными фреймворками.
from authlib.integrations.flask_client import OAuth
oauth = OAuth(app)
oauth.register(name='google', client_id='...', client_secret='...')
Настройка включает регистрацию приложения у провайдера, обработку callback-URL и проверку токенов. Для FastAPI/Django существуют аналогичные решения.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
asyncio.create_task()
запускает корутину как асинхронную задачу, позволяя ей выполняться конкурентно. Возвращает объект Task
, который можно использовать для отмены или ожидания завершения.
import asyncio
async def background_task():
await asyncio.sleep(1)
task = asyncio.create_task(background_task())
Задачи автоматически добавляются в цикл событий и выполняются без блокировки основного потока.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
def calculate_sum(a, b):
"""
Adds two numbers and returns the result.
Args:
a (int): First number
b (int): Second number
Returns:
int: Sum of a and b
"""
return a + b
Особенности:
- Доступна через
help(calculate_sum)
или __doc__
- Автоматически подхватывается IDE и генераторами документации
- Рекомендуется для публичных API и сложной логики
PEP 257 описывает стандарты оформления docstrings.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
__len__()
— специальный метод, вызываемый функцией len()
. Должен возвращать целое число ≥ 0, представляющее длину объекта.
class MyCollection:
def __len__(self):
return 10
Ключевые особенности:
- Обязателен для объектов, поддерживающих определение длины
- Вызывается автоматически при использовании
len(obj)
- Должен возвращать только целое число (int)
Реализуется в коллекциях (list, dict), пользовательских контейнерах и итерируемых объектах.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM