Для обновления конкретного пакета:  
Обновление всех устаревших пакетов:
Особенности:
- Флаг
- Рекомендуется использовать в виртуальном окружении
- Для системных пакетов может потребоваться
Перед обновлением лучше проверить совместимость версий.
Ставь👍 , если было полезно!
Больше ответов на сайте👈 
✈️  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
  👍7
  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