Python Ninja | Программирование
6.92K subscribers
1.08K photos
99 videos
918 links
Канал для всех кто хочет освоить или прокачать навыки программирования на Python. Присоединяйся, чтобы стать настоящим Python Ninja!

Связь: @sfoninja
Download Telegram
Принёс полезное руководство по метоклассам в Python

Материал не просто рассказывает, что такое метаклассы, — он складывает из мелких деталей целостную картину объектной модели Python

Мы видим полный маршрут создания класса, от подготовки namespace до вызова конструкторов, и понимаем, зачем вообще нужен контроль на уровне метакласса

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Microsoft выкатила мощное и полезное расширение PostgreSQL для VS Code

Microsoft выкатила новое расширение PostgreSQL для VS Code и это апгрейд рабочего процесса на новый уровень

Больше не нужно прыгать между окнами и открывать разные клиенты: прямо в редакторе можно смотреть таблицы, гонять запросы, заглядывать в схемы и даже просить встроенный AI подсказать нужный SQL

Никаких плясок с конфигурациями: поставил и работаешь😘

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Совет по Python: как vars() “раскрывает” атрибуты объекта

Функция vars(obj) возвращает внутренний словарь __dict__ объекта – то есть все публичные атрибуты экземпляра класса и их значения. Это универсальный способ получить «срез» состояния объекта: удобно для отладки, логирования, сериализации в JSON и других задач.

Когда это особенно полезно?

Когда нужно быстро увидеть текущие значения всех атрибутов объекта (без принудительного вывода каждого вручную).

При преобразовании экземпляров классов в словари – например, в API-ответах или при сохранении в JSON.

Для динамической работы с атрибутами: можно программно проанализировать, модифицировать или фильтровать их.

Обратите внимание:

vars() работает только с объектами, у которых есть атрибут __dict__ (стандартные экземпляры классов, модули, классы)

Если использовать его на объектах без __dict__ (например, на строке, числе или объектах с __slots__) возникнет TypeError

Отлично отражает дух Python — коротко, читаемо и эффективно. Особенно полезен, если хочется «зазеркалить» состояние объекта без лишнего кода

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Все когда то начинали с низов ☕️

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁106
Git: шпаргалка для новичков

Working Directory: Рабочая директория, здесь вы редактируете файлы проекта

Команда:
git add - добавить изменения в индекс


Staging (Index) подготовительная область: Содержит изменения, которые будут добавлены в следующий коммит

Команда:
git commit - зафиксировать изменения в локальном репозитории


Local Repository локальный репозиторий: Хранит историю всех коммитов на вашем компьютере

Команды:
git push - отправить коммиты в удалённый репозиторий
git fetch - получить новые коммиты с удалённого репозитория без слияния
git pull - получить и объединить изменения из удалённого репозитория

Stash временное хранилище изменений: Используется, когда изменения нужно временно убрать, но не коммитить

Команды:
git stash - сохранить незавершённые изменения
git stash - apply применить изменения из stash, не удаляя их
git stash pop - применить и удалить сохранённые изменения


Remote Repository удалённый репозиторий: Общий сервер проекта GitHub, GitLab, Bitbucket

Лайк если полезно ❤️

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
12
Проверка условий и логических значений в Python

Что выведет код

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Варианты
Anonymous Quiz
30%
A
40%
B
20%
C
10%
D
Откопал полезный репо — коллекция шпаргалок для разработчиков

Здесь есть буквально всё, короткие удобные шпаргалки по самым нужным темам. Git, SQL-запросы, Docker, RegEx, Bash, Python, JS, HTTP-коды, архитектура REST и многое другое.

Держи под рукой чтобы ускорить рабочий процесс ⌨️

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Ловите подгон «101 Linux Commands» системный путеводитель команд Linux

Представьте опытный админ садится рядом и подробно объясняет вам, как устроен Linux. «101 Linux Commands» именно эта книга: дружный проводник, который шаг за шагом открывает мир терминала, не пугая сложностями

Практичный справочник для новичков и специалистов нуждающихся в мини компактном источнике базовых и часто используемых команд 📖

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Динамическая диспетчеризация функций

Динамическая диспетчеризация функций означает принятие решения во время выполнения программы о том, какую функцию вызвать, основываясь на некоторых динамических условиях — часто на типе аргумента, значении или атрибутах объекта. Это можно представить как более «умную» версию конструкции if-elif, в которой Python сам решает, какую функцию исполнить, исходя из контекста, а не заранее заданного потока кода. Это является ключевой идеей полиморфизма и гибкого проектирования

Замена длинных цепочек if-else на словарь диспетчеризации (dispatch dictionary) дает значительные преимущества в читаемости, масштабируемости и сопровождаемости кода

В примере ниже, вместо того чтобы использовать громоздкие if-else мы используем карту команд (command map), которую можно легко обновить, если потребуется добавить новые команды. Никаких вложенных условий или «адского» отступа. Такой подход делает код более читаемым, масштабируемым и простым в обновлении
def start_engine():
return "Запуск двигателя..."

def stop_engine():
return "Остановка двигателя..."

def pause_engine():
return "Приостановка двигателя..."

# Диспетчер команд
command_map = {
"start": start_engine,
"stop": stop_engine,
"pause": pause_engine,
# Здесь можно добавить больше команд
}

def handle_command(command):
action = command_map.get(command)
if action:
return action()
else:
return "Неверная команда"

print(handle_command("pause"))


Вывод:
Приостановка двигателя...


✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Лицо Валеры когда вчера починил а сегодня опять сломали 🙈

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12🔥2
Совет по Python

Метод startswith()

Если у вас есть список строк и вы хотите получить все строки, которые начинаются с определённого значения, вы можете использовать метод списка startswith()

В приведённом ниже примере мы хотим получить все строки из списка, начинающиеся с буквы "a"
a = ['Lemon', 'Orange', 'apple', 'apricot']
list1 = [i for i in a if i.startswith('a')]
print(list1)

# Вывод:
['apple', 'apricot']


Важные уточнения:

Чувствительность к регистру – метод startswith('a') проверяет строго с маленькой буквы

Если нужно искать строки, начинающиеся на 'a' или 'A' используйте:
[i for i in a if i.lower().startswith('a')]

Проверка нескольких префиксов – можно передавать кортеж префиксов:
[i for i in a if i.startswith(('a', 'A'))]


✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Хочешь строить приложение на Python и избежать фронтенда

Тогда тебе безусловно понравится этот современный декларативный UI‑фреймворк на Python, без HTML/CSS/JS. Он реализует модель в духе React/Flutter, где все компоненты — Python‑классы с атрибутами‑dataclass и методом build()

Более 50 встроенных компонентов: rio.Button, rio.Text, rio.Switch и др.

Автодополнение и type safety благодаря полным аннотациям типов

Запуск: локально (окно) или веб (через WebSocket, FastAPI/Uvicorn) — один и тот же код

Dev‑фичи: hot reload, встроенный devtools, интеграция с Python debugger

Лично мне он нравится уже даже по описанию 😏

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Полезная тулза «Port Kill» приложение для быстрого управления процессами

Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах

Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу

Сохраняем пригодится

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Двойное подчёркивание и name mangling в Python

Что выведет код 👍

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Варианты
Anonymous Quiz
44%
A
23%
B
28%
C
5%
D
Как я стал Python разработчиком 👦

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🙉43
Подарок новичкам самый наглядный и дружелюбный инструмент изучения Git

Learn Git Branching настоящий подарок для новичков: интерактивные задания и живое визуальное дерево коммитов превращают изучение Git в игру, здесь каждое твоё действие тут же оживает на экране, делая даже сложные темы лёгкими и понятными

Каждый коммит это шаг. Главное начать идти 💪

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Эффективное освоение алгоритмов через паттерны LeetCode

Ресурс группирует задачи LeetCode по фундаментальным паттернам решения, превращая разрозненные задачи в понятную систему подходов

Каждый паттерн объяснён, подкреплён примерами и визуализациями что помогает не просто «зубрить» задачи, а понимать сам подход, который легко переносится на новые задачи

Есть треки для пошаговой подготовки от новичка до продвинутого. Это экономит время: вместо хаотичного выбора задач вы двигаетесь по структурному пути, который закрывает все ключевые темы для собесов💪

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Совет по Python

Возвращаем несколько значений из функции с помощью namedtuple

По умолчанию функция возвращает одно значение, но иногда нужно вернуть несколько. Один из удобных способов — использовать namedtuple из модуля collections. Это позволяет задать структуру возвращаемых значений, делая код более читаемым и понятным

Пример:
from collections import namedtuple

def multiple_values():
MyTuple = namedtuple("MyTuple", ["name", "age", "car"])
name = "Mark"
age = 21
car = "Ford"
return MyTuple(name, age, car)

# Использование функции
result = multiple_values()
print(f"Name: {result.name}, Age: {result.age}, Car: {result.car}")

Вывод:
Name: Mark, Age: 21, Car: Ford


Преимущества:

Четкая структура: поля name, age и car заданы явно

Доступ к значениям по именам (result.name), а не по индексам

Улучшает читаемость и поддерживаемость кода

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2
Логические операторы и приоритеты в Python

Что выведет код? 🪑

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3