Для обновления конкретного пакета:
Обновление всех устаревших пакетов:
Особенности:
- Флаг
- Рекомендуется использовать в виртуальном окружении
- Для системных пакетов может потребоваться
Перед обновлением лучше проверить совместимость версий.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Python собеседования
pip install --upgrade package_name
Обновление всех устаревших пакетов:
pip list --outdated # Просмотр устаревших пакетов
pip install --upgrade $(pip list --outdated | awk 'NR>2 {print $1}')
Особенности:
- Флаг
--upgrade
можно сократить до -U
- Рекомендуется использовать в виртуальном окружении
- Для системных пакетов может потребоваться
sudo
(не рекомендуется) Перед обновлением лучше проверить совместимость версий.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
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
value = 42 # int
value = "text" # str
Характеристики:
- Проверка типов происходит при выполнении операций
- Гибкость кода ценой возможных runtime-ошибок
- Использует duck typing
Отличается от статической типизации (C++, Java), где типы проверяются до запуска программы.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
__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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Оператор
При проверке условий
Это полезно для проверки цепочки условий, где последующие зависят от предыдущих.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ 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
Файл
Установка зависимостей:
Для генерации файла из текущего окружения:
Формат версий:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Методы
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ 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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Для вставки данных в таблицу используется 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