Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
from cryptography.fernet import Fernet # Симметричное шифрование
from Crypto.PublicKey import RSA # Асимметричное шифрование
import hashlib # Хеширование
Популярные решения:
-
cryptography — современный стандарт для шифрования -
pycryptodome — расширенная криптография (AES, RSA) -
hashlib — встроенный модуль для хешей (SHA-256, MD5) -
bcrypt — специализированная библиотека для хеширования паролей Для TLS/SSL используется встроенный модуль
ssl.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
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
👍7❤2🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
asyncio.TimeoutError возникает при превышении времени выполнения асинхронной операции. Для обработки таймаутов используйте asyncio.wait_for():
try:
result = await asyncio.wait_for(coroutine(), timeout=5.0)
except asyncio.TimeoutError:
handle_timeout()
Ключевые моменты:
- Применяется для ограничения времени выполнения корутин
- Отличается от встроенного
TimeoutError (синхронные операции) - Вместе с
asyncio.shield() позволяет контролировать прерывание Таймауты особенно важны для сетевых запросов и внешних API.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
value = 42 # int
value = "text" # str
Характеристики:
- Проверка типов происходит при выполнении операций
- Гибкость кода ценой возможных runtime-ошибок
- Использует duck typing
Отличается от статической типизации (C++, Java), где типы проверяются до запуска программы.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
__delattr__() вызывается при попытке удаления атрибута через оператор del. Позволяет кастомизировать поведение при удалении:
class Example:
def __delattr__(self, name):
print(f"Deleting {name}")
object.__delattr__(self, name)
Ключевые особенности:
- Требует явного вызова
object.__delattr__() для реального удаления - Может блокировать удаление критичных атрибутов
- Вызывается только для оператора
del, не влияет на delattr() Используется редко, в основном для сложных деструкторов или защиты атрибутов.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
union() или оператор |:
set1 = {1, 2}
set2 = {2, 3}
merged = set1.union(set2) # {1, 2, 3}
Альтернативные варианты:
- update() модифицирует исходное множество
- | создает новое множество
- {*set1, *set2} работает с Python 3.5+
Все методы автоматически удаляют дубликаты.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
git fetch загружает изменения из удаленного репозитория без слияния с локальной веткой, обновляя только ссылки в .git/refs/remotes.
git fetch origin # Загружает изменения без модификации рабочей директории
git pull = git fetch + git merge — автоматически сливает загруженные изменения с текущей веткой. Ключевые отличия:
-
fetch безопаснее — позволяет проверить изменения перед слиянием -
pull может создать конфликт слияния без предупреждения - Для проверки изменений после fetch используйте
git log origin/branch Рекомендуется использовать
fetch + ручное слияние в рабочих проектах.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
asyncio.subprocess позволяет запускать и управлять дочерними процессами асинхронно. Работает через создание подпроцессов с неблокирующим вводом-выводом, интегрируясь в цикл событий asyncio. Основные классы и функции:
-
create_subprocess_exec — запускает процесс из переданных аргументов. -
create_subprocess_shell — запускает процесс через оболочку. Процесс общается через стандартные потоки (stdin, stdout, stderr), доступные как асинхронные потоки.
import asyncio
async def run_command():
proc = await asyncio.create_subprocess_exec(
'echo', 'hello',
stdout=asyncio.subprocess.PIPE
)
stdout, _ = await proc.communicate()
print(stdout.decode())
Код запускает процесс
echo и читает его вывод асинхронно. communicate() ожидает завершения процесса и возвращает вывод.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Оператор
При проверке условий
Это полезно для проверки цепочки условий, где последующие зависят от предыдущих.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
and в условных выражениях выполняет ленивое вычисление: возвращает первый ложный операнд или последний, если все истинны.
result = x and y # Если x ложно, вернётся x, иначе y
При проверке условий
and останавливается на первом False, не вычисляя остальные.
if a and b: # Если a == False, b не проверяется
...
Это полезно для проверки цепочки условий, где последующие зависят от предыдущих.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Файл
Установка зависимостей:
Для генерации файла из текущего окружения:
Формат версий:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
requirements.txt содержит список зависимостей Python-проекта. Каждая строка — имя пакета с опциональным ограничением версии.
# requirements.txt
requests==2.25.1
flask>=1.1.0
pytest
Установка зависимостей:
pip install -r requirements.txt
Для генерации файла из текущего окружения:
pip freeze > requirements.txt
Формат версий:
== (точно), >= (минимум), < (максимум).Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Методы
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
__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. Позволяет эмулировать поведение встроенных коллекций.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
asyncio.Event позволяет синхронизировать корутины через механизм событий. Объект находится в неактивном состоянии (False) до явного вызова set().
event = asyncio.Event()
async def waiter():
await event.wait() # Ожидает установки флага
print("Event triggered")
async def setter():
await asyncio.sleep(1)
event.set() # Разблокирует все ожидающие корутины
Основные методы:
-
wait() — приостанавливает выполнение до срабатывания события -
set()/clear() — активирует/сбрасывает событие -
is_set() — проверяет состояние флага Используется для координации между задачами, когда одна должна уведомить другие о наступлении условия.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Для вставки данных в таблицу используется SQL-запрос
Ключевые моменты:
- Указание имени таблицы и столбцов (опционально)
- Перечисление значений в порядке столбцов
- Возможность множественной вставки через несколько
Для безопасной вставки из Python рекомендуется использовать параметризованные запросы.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
INSERT INTO. Синтаксис зависит от структуры таблицы и количества добавляемых значений.
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
Ключевые моменты:
- Указание имени таблицы и столбцов (опционально)
- Перечисление значений в порядке столбцов
- Возможность множественной вставки через несколько
VALUES
INSERT INTO users (name, age)
VALUES ('Alex', 25), ('Anna', 30);
Для безопасной вставки из Python рекомендуется использовать параметризованные запросы.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4