async
перед определением функции. Запуск асинхронной задачи выполняется с помощью await
внутри другой асинхронной функции или через asyncio.run()
.
import asyncio
async def my_task():
print("Задача выполняется")
await asyncio.sleep(1)
asyncio.run(my_task())
Функция
asyncio.run()
запускает асинхронную задачу и управляет циклом событий.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
а
тор присваивания = связывает имя переменной с объектом в памяти. При присваивании создается ссылка на объект, а не копия.
a = 10 # переменная a ссылается на целое число 10
b = a # b ссылается на тот же объект, что и a
Если изменяемый объект модифицируется через одну переменную, это отразится на другой:
lst1 = [1, 2]
lst2 = lst1
lst1.append(3) # изменение через lst1
print(lst2) # [1, 2, 3], так как lst2 ссылается на тот же список
Для изменяемых типов иногда требуется создание копии, чтобы избежать неожиданных изменений.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
zip()
объединяет элементы нескольких итерируемых объектов попарно, создавая итератор кортежей. Работает до исчерпания самой короткой коллекции.
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30]
for name, age in zip(names, ages):
print(name, age)
Результат:
Alice 25
Bob 30
Для обработки всех элементов, включая непарные, можно использовать
zip_longest
из модуля itertools
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
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