Полезный мем: переменные или методы, имена которых начинаются с двойного подчёркивания (например, __x), автоматически «искажаются» интерпретатором путём добавления имени класса в начало. Это делается для обеспечения некоторой степени инкапсуляции и предотвращения конфликтов имён в классах-наследниках.
«Приватные» переменные с двойным одчёркиванием на самом деле претерпевают трансформацию имени (Name Mangling).
#кек #факт
@zen_of_python
«Приватные» переменные с двойным одчёркиванием на самом деле претерпевают трансформацию имени (Name Mangling).
#кек #факт
@zen_of_python
❤7
Когда хотел просто поиграть, но случайно спас марсианскую базу…
Go-разработчики, ваш выход! Вместе с «МойОфис» сделали игру, в которой нужно проявить все свои знания в Go. Решите задачи и помогите главным героям спасти марсианских колонизаторов.
P.S. Первые 10 игроков с максимальным результатом за минимальное время получат подарки от «МойОфис».
Вперёд, времени почти нет: https://tprg.ru/sZEq
Реклама
Go-разработчики, ваш выход! Вместе с «МойОфис» сделали игру, в которой нужно проявить все свои знания в Go. Решите задачи и помогите главным героям спасти марсианских колонизаторов.
P.S. Первые 10 игроков с максимальным результатом за минимальное время получат подарки от «МойОфис».
Вперёд, времени почти нет: https://tprg.ru/sZEq
Реклама
complexipy | Вычисляем когнитивную сложность вашего кода
Нетривиальный инструмент, позволяющий вычислить Cognitive Complexity («когнитивную сложность»). В контексте программирования это метрика, оценивающая насколько трудно человеку понять код — учитываются не только ветвления и циклы, как в Cyclomatic Complexity, но и структура, глубина вложенности, логические конструкции, операторы и прочие аспекты, создающие когнитивную нагрузку при чтении. Это важная метрика при рефакторинге проекта.
Тул интегрируется через CLI, GitHub Actions, pre-commit-hooks и позволяет анализировать функции, файлы и директории, указывая те, чей коэффициент сложности превышает определенный порог.
#инструмент
@zen_of_python
💔 — Если рефакторинг разбивает сердце
Нетривиальный инструмент, позволяющий вычислить Cognitive Complexity («когнитивную сложность»). В контексте программирования это метрика, оценивающая насколько трудно человеку понять код — учитываются не только ветвления и циклы, как в Cyclomatic Complexity, но и структура, глубина вложенности, логические конструкции, операторы и прочие аспекты, создающие когнитивную нагрузку при чтении. Это важная метрика при рефакторинге проекта.
Тул интегрируется через CLI, GitHub Actions, pre-commit-hooks и позволяет анализировать функции, файлы и директории, указывая те, чей коэффициент сложности превышает определенный порог.
#инструмент
@zen_of_python
💔 — Если рефакторинг разбивает сердце
❤4🆒2
Квиз: какой ты магистр информационных технологий
Собрали для вас интерактивный приключенческий квест с сеттингом футуристичного города инженеров. Всего пару минут и вы узнаете, какая магистерская программа точно будет вам по духу.
Сохраняйте: https://tprg.ru/YGcC
Собрали для вас интерактивный приключенческий квест с сеттингом футуристичного города инженеров. Всего пару минут и вы узнаете, какая магистерская программа точно будет вам по духу.
Сохраняйте: https://tprg.ru/YGcC
👾3
tyro | Ваша функция, вызываемая в CLI
Здесь
Утилита извлекает аннотации и doc-строки. Аргументы становятся типами, которыми оперируют IDE и анализаторы
#инструмент
@zen_of_python
tyro.cli()
автоматически преобразует Python-функцию или класс с аннотациями типов в полнофункциональный интерфейс командной строки, без необходимости вручную прописывать парсинг аргументов:
@dataclass
class Config:
input_file: str
verbose: bool = False
Здесь
tyro.cli(Config)
создаёт полноценный CLI, где аргументы --input-file
и --verbose
будут автоматически сгенерированы, а при вызове в терминале доступна помощь (--help
).Утилита извлекает аннотации и doc-строки. Аргументы становятся типами, которыми оперируют IDE и анализаторы
mypy
, pyright
: автодополнение, переход к определению, рефакторинг — всё работает «из коробки». Это даст возможность автокомплитить с Tab.#инструмент
@zen_of_python
🔥2✍1
Forwarded from Код найма
Забивайте слот в календаре:
📌 19 августа, 18:00 — Сергей Филичкин проведёт бесплатную открытую консультацию в «Коде найма».
Тему этого эфира помогли выбрать вы! Будем разбирать, «Как собирать офферы «про запас» и торговаться за лучшую цену». А вот более подробный план встречи:
💬 Оставляйте свои вопросы Сергею под этим постом — чтобы наш ментор дал развернутые и действительно рабочие советы!
ИП Филичкин Сергей Андреевич ИНН 183401586208, erid: 2W5zFJydiRE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🗿1
Вопрос подписчика: IDE + GPT
Задает @vberia:
«Какие IDE и какие GPT сейчас актуальны? Можно топ 3? Не хочется тестировать лишнего, но хочется протестить нужные)».
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#вопросы_подписчиков
@zen_of_python
Задает @vberia:
«Какие IDE и какие GPT сейчас актуальны? Можно топ 3? Не хочется тестировать лишнего, но хочется протестить нужные)».
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#вопросы_подписчиков
@zen_of_python
👍1💅1
Где арендовать GPU в 2025: подборка GPU‑хостингов с адекватной ценой и SLA
В 2025 году аренда видеокарт в облаке становится всё более актуальной альтернативой покупке собственного оборудования. В обзоре представили подборку провайдеров, которые предлагают топовые видеокарты — от NVIDIA V100 и A40 до мощнейших H100 и A100 для создания кластеров до 8 GPU. Многие из них предоставляют фичу — поминутную / почасовую оплату (pay-as-you-go), что делает такое железо доступным физлицам. Например, на VK Cloud предлагаются GPU L4, Tesla V100 и A100 для задач от видеообработки до глубокого обучения, а Cloud.ru предлагает H100, A100, V100 и A40 с возможностью формирования мощных кластеров.
#факт
@zen_of_python
В 2025 году аренда видеокарт в облаке становится всё более актуальной альтернативой покупке собственного оборудования. В обзоре представили подборку провайдеров, которые предлагают топовые видеокарты — от NVIDIA V100 и A40 до мощнейших H100 и A100 для создания кластеров до 8 GPU. Многие из них предоставляют фичу — поминутную / почасовую оплату (pay-as-you-go), что делает такое железо доступным физлицам. Например, на VK Cloud предлагаются GPU L4, Tesla V100 и A100 для задач от видеообработки до глубокого обучения, а Cloud.ru предлагает H100, A100, V100 и A40 с возможностью формирования мощных кластеров.
#факт
@zen_of_python
@pytest.mark.parametrize
: Как параметризировать тестыТестирование кода может быть утомительным процессом. Когда у вас есть множество похожих тестовых случаев, написание отдельных функций для каждого часто приводит к дублированию кода. Именно здесь на помощь приходит функция @pytest.mark.parametrize.
Начнем с простого примера. У нас есть функция
add_nums()
, которая складывает числа из списка:
def add_nums(numbers):
return sum(numbers)
Без parametrize тесты могли бы выглядеть так:
def test_123():
assert add_nums([1, 2, 3]) == 6
def test_negatives():
assert add_nums([1, 2, -3]) == 0
def test_empty():
assert add_nums([]) == 0
Что не так с этим подходом? Дублирование кода: каждая тестовая функция повторяет одну и ту же структуру. Вместо написания трех отдельных функций, мы можем создать одну параметризованную функцию:
import pytest
@pytest.mark.parametrize(
"nums, expected_total",
[
([1, 2, 3], 6),
([1, 2, -3], 0),
([], 0),
]
)
def test_add_nums(nums, expected_total):
assert add_nums(nums) == expected_total
1.
@pytest.mark.parametrize
— это специальный декоратор pytest2. Параметры "
nums, expected_total
" — имена параметров функции3. Тестовые данные — список кортежей, где каждый содержит значения для одного теста
Pytest автоматически вызывает вашу функцию с каждым набором параметров:
# Первый вызов
test_add_nums([1, 2, 3], 6)
# Второй вызов
test_add_nums([1, 2, -3], 0)
# Третий вызов
test_add_nums([], 0)
Результат: 3 отдельных теста, каждый из которых может пройти или упасть.
Кастомные ID для тестов
По умолчанию pytest генерирует автоматические ID для тестов, но они могут быть не очень понятными. Вы можете задать свои:
@pytest.mark.parametrize(
"nums, expected_total",
[
([1, 2, 3], 6),
([1, 2, -3], 0),
([], 0),
],
ids=["positive_numbers", "mixed_numbers", "empty_list"]
)
def test_add_nums(nums, expected_total):
assert add_nums(nums) == expected_total
Теперь при запуске тестов вы увидите:
test_add_nums[positive_numbers] PASSED
test_add_nums[mixed_numbers] PASSED
test_add_nums[empty_list] PASSED
Вложенная параметризация
Можно комбинировать несколько параметризаций:
@pytest.mark.parametrize("x", [1, 2, 3])
@pytest.mark.parametrize("y", [10, 20])
def test_multiply(x, y):
assert x * y == x * y
Это создаст 6 тестов: (1,10), (1,20), (2,10), (2,20), (3,10), (3,20).
#основы
@zen_of_python
👍12❤1
Что такое магистратура для инженеров данных и почему сейчас — лучшее время поступать
На Tproger рассказали, почему именно сейчас — лучший момент, чтобы выучиться на инженера данных. Программа магистратуры от НИУ ВШЭ совместно с Нетологией даёт официальный государственный диплом, а также дополнительный профессиональный сертификат. Обучение строится на практике: студенты накапливают портфолио через учебные проекты, хакатоны и стажировки у партнёров программы, а завершают его выпускной квалификационной работой, которая может быть исследовательской или корпоративной. Вы получите навыки работы с Python, SQL, Java, Hadoop, Airflow, Docker, Yandex Cloud, ClickHouse, PostgreSQL и сможете строить эффективные пайплайны. Есть очный и удаленный форматы.
#обучение
@zen_of_python
На Tproger рассказали, почему именно сейчас — лучший момент, чтобы выучиться на инженера данных. Программа магистратуры от НИУ ВШЭ совместно с Нетологией даёт официальный государственный диплом, а также дополнительный профессиональный сертификат. Обучение строится на практике: студенты накапливают портфолио через учебные проекты, хакатоны и стажировки у партнёров программы, а завершают его выпускной квалификационной работой, которая может быть исследовательской или корпоративной. Вы получите навыки работы с Python, SQL, Java, Hadoop, Airflow, Docker, Yandex Cloud, ClickHouse, PostgreSQL и сможете строить эффективные пайплайны. Есть очный и удаленный форматы.
#обучение
@zen_of_python
Мы писали ранее, что 12 сентября пройдёт big tech night. Событие придумали в Яндексе и организовали вместе со Сбером, X5, Т-Банком и Lamoda. Впервые топовые IT-компании одновременно откроют двери офисов в Москве с 18:00 до 00:00 и покажут специалистам, где рождаются технологии.
Пора рассказать о тех, кто выйдет на сцену⚡️
📣 Кто и о чём расскажет на big tech night? Начинаем представлять спикеров и темы. Читайте на карточках.
➡️ А подробнее про доклады рассказываем на сайте
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Пора рассказать о тех, кто выйдет на сцену⚡️
📣 Кто и о чём расскажет на big tech night? Начинаем представлять спикеров и темы. Читайте на карточках.
➡️ А подробнее про доклады рассказываем на сайте
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Forwarded from Типичный программист
Инструкция к Kubernetes, которую поймёт даже водитель Uber
Если ваша резиновая уточка уже освоила все популярные технологии, то пора искать новую жертву. Сможете рассказать о сложном так, чтобы вас понял даже далёкий от IT водитель такси?
Автор этого материала смог и поделился своим результатом. Если вы всё ещё не до конца понимаете кубер, то скорее читайте статью:
https://dev.to/therubberduckiee/explaining-kubernetes-to-my-uber-driver-4f60
Если ваша резиновая уточка уже освоила все популярные технологии, то пора искать новую жертву. Сможете рассказать о сложном так, чтобы вас понял даже далёкий от IT водитель такси?
Автор этого материала смог и поделился своим результатом. Если вы всё ещё не до конца понимаете кубер, то скорее читайте статью:
https://dev.to/therubberduckiee/explaining-kubernetes-to-my-uber-driver-4f60