Программистика
Закрытый канал
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
Больше5 579
Подписчики
-324 часа
-427 дней
-12830 день
Архив постов
5 579
В каких сценариях особенно опасны изменяемые аргументы по умолчанию?
5 579
⚙️ Изменяемые значения по умолчанию: тихий убийца функций в Python
В Python дефолтные аргументы вычисляются один раз — при определении функции, а не при каждом вызове. Поэтому список или словарь в параметре по умолчанию живёт между вызовами и накапливает значения, что даёт странные баги, которые тяжело отлавливать.
❌ Плохо (один общий список на все вызовы):
def add_item(item, items=[]):
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [1, 2] ← сюрприз
✔️ Правильно (создаём новый список при каждом вызове):
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
Так ты избегаешь скрытого общего состояния между вызовами и делаешь функцию предсказуемой, особенно важно для библиотек и обработчиков в веб-приложениях.
Программистика || #Советы5 579
🍔 Пользовался Яндекс Едой? Поздравляю – ты уже в открытой базе с ФИО, телефоном и точным адресом.
И все твои данные перепродаются сотни раз, пока не попадут в руки недоброжелателей.
Чтобы избежать таких ситуаций в будущем и начать что-то понимать в IT – сохраняй каналы:
➡️ Промт Хакера – хакинг и кибербезопасность
➡️ Ai-чница — секреты ChatGPT и ИИ от хакера
➡️ Войти в IT — Python и веб-разработка с нуля до первых денег
➡️ Технолоджия — Data Science без высшей математики
➡️ ИИ тебя заменит! — прокачка hardskills
➡️ IT индус — лучшие мемы для своих
😒 Советуем сохранить всё сразу, пока не заблокировали: @EvgHackList
5 579
Яндекс приглашает аналитиков на Weekend Offer
Ищем опытных аналитиков, чтобы вместе создавать технологии, которые меняют мир.
Кого мы ищем
✅ Аналитиков с опытом работы на Python от 3 лет.
✅ Готовы работать в офисе или гибридном режиме в Москве или Санкт-Петербурге. С релокацией из других городов РФ поможем.
Как всё устроено
✅ До 3 декабря регистрируйтесь на сайте.
✅ 6 декабря решаете задачи на двух технических секциях.
✅ 7 декабря знакомитесь с командами и получаете офер.
В Яндексе наука и бизнес работают вместе. Мы опираемся на научные исследования и аналитические данные, а потом превращаем их в технологии и реальные продукты.
Присоединяйтесь, чтобы строить полезные сервисы вокруг ИИ-технологий, находить новые решения и делать то, что другим не по силам.
Зарегистрироваться
#реклама
yandex.ru
О рекламодателе
5 579
👀 Python для геймеров: ООП
Курс для тех, кто уже знает основы Python и хочет наконец понять, как работает ООП без заумных речей и страшных слов. Всё просто, пошагово и на примерах из игр.
🌐 СсылкаПрограммистика || #Course
5 579
Айтишник, присаживайся поудобнее: собрали для тебя подборку лучших каналов про ИИ, разработки и языки кода.
• Only GPT — твой гид по нейронкам, секретным функциям GPT 5.1 и способам обхода внутренней цензуры.
• Only Hack — канал профессионального хакера про приватность и безопасность.
• Only Apple — инсайды о новых девайсах Apple и утечки от разработчиков компании.
• Only Python — ТОП-1 бесплатные материалы по питону в Интернете.
• Only IT — прорывные стартапы, которые задают тренды в индустрии.
• Only GitHub — всякие полезности (и бесполезности) с Гитхаба.
• Only Tech — все самые свежие и актуальные технологии.
• Ну и мемасики про IT конечно
Сохраняй в подписках!
5 579
Какой из следующих кодов корректно использует @classmethod для создания альтернативного конструктора?
5 579
🖥 Robyn — это асинхронный веб-фреймворк для Python, который использует Rust для высокой производительности!
Он позволяет создавать быстрые веб-приложения, сочетая удобный API на Python с низкоуровневыми оптимизациями Rust. Robyn поддерживает асинхронные обработчики запросов, масштабируемую обработку соединений и удобную маршрутизацию, что делает его отличным выбором для высоконагруженных сервисов.🐱 Ссылка на GitHub Программистика || #Library
5 579
👩💻 Классы, методы и свойства — что, где и зачем?
Новички часто путают, чем отличаются методы класса, методы экземпляра и статические методы. Вот кратко — без магии, только практика и ловушки.
👍 Методы экземпляра — работают с конкретным объектом
class User:
def show(self):
print(self) # self — это конкретный экземпляр
👉 Всегда первым аргументом — self
👉 Доступ к атрибутам экземпляра
👉 Можно менять состояние объекта
👍 Методы класса — работают с самим классом
class User:
@classmethod
def create_default(cls):
return cls("Bot", 0)
👉 Аргумент cls — сам класс, а не объект
👉 Не видит конкретный self, только классную “шапку”
👉 Часто — альтернативные конструкторы, фабрика новых объектов
👍 Статические методы — не знают ни про класс, ни про объект
class User:
@staticmethod
def help():
print("Создай пользователя через User(name, age)")
👉Нет self, нет cls вообще
👉Обычная функция внутри класса — для логической организации
👉Не обращается к атрибутам класса или экземпляра
🧱 Вот где обычно путают:
🟢В @staticmethod НЕЛЬЗЯ обращаться к self и cls — их просто нет! 🟢 В @classmethod НЕЛЬЗЯ менять конкретные значения self — доступа нет, только к классу.👍 Методы экземпляра (без декораторов) — НЕЛЬЗЯ вызвать на классе напрямую:
User.show() # ошибка!
# Можно только через экземпляр: u = User(); u.show()
❗️ Типичные ошибки
Перепутал self и cls: @classmethod def f(self) — ошибка! должно быть cls Описал метод через @staticmethod, а внутри пробуешь работать с self — ошибка! Хочешь вызывать метод экземпляра на классе — получишь TypeError В @classmethod внутри создаёшь объект через return User() — привязываешься к конкретному имени класса, нарушаешь наследование. Всегда используй cls()!✍️Пиши — с чем чаще всего путаешься и хотел бы разобрать примеры! Программистика || #Статья
5 579
Удаляйте ChatGPT. Вы не умеете им пользоваться.
Большинство пользователей спамит в ИИ всякую чушь — просят рассказать анекдот, изливают душу и используют как Гугл.
Российский тимлид OpenAI Вадим Петрич рассказывает в «Доктор GPT» как извлекать из нейронок максимум пользы. Это очень интересно:
• ТОП №1 нейросеть, генерирующая видео без цензуры вообще
• Готовые промты на все случаи жизни
• Инсайды и разработки от китов индустрии
Подпишитесь, с Доктором GPT нейронки станут инструментом роста, а не безделушкой:
https://t.me/+fMjqBvMUQ3RkYzEy
5 579
⚡️ Айтишник из «VISION» скупил курсы айти школ и выложил гигабайты материалов к себе
Каждый найдет что-то по душе:
1202 ГБ — Python
1811 ГБ — Frontend
1100 ГБ — C / C++ / C#
804 ГБ — Java
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin / Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA / Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн
Материалы в закрепе, постоянно пополняются👆🏻
5 579
Кто сказал, что после 11.11 скидок не бывает?
Это точно не про нас, потому что в Kata Academy объявляется черная пятница!
⚡Сейчас у тебя есть возможность обучаться с приятной скидкой на наших курсах:
- с гарантированным трудоустройством;
- с гарантированной зарплатой (Fe - от 100.000, Go/Java - от 120.000);
- с подготовкой к собеседованиям;
... И сразу после обучения ты получишь свой первый оффер❤️
Перейти на сайт
#реклама 16+
kata.academy
О рекламодателе
5 579
Функция должна принимать необязательный список целых чисел и может вернуть либо строку, либо None.
Как правильно описать типы такой функции?
Что должно быть ИСПОЛЬЗОВАНО в аннотациях?
5 579
👀 Python для data science
Python — идеальный выбор для манипулирования и извлечения информации из данных всех видов. «Python для data science» познакомит программистов с питоническим миром анализа данных. Вы научитесь писать код на Python, применяя самые современные методы, для получения, преобразования и анализа данных в управлении бизнесом, маркетинге и поддержке принятия решений. Познакомьтесь с богатым набором встроенных структур данных Python для выполнения основных операций, а также о надежной экосистемы библиотек с открытым исходным кодом для data science, включая NumPy, pandas, scikit-learn, matplotlib и другие. Научитесь загружать данные в различных форматах, упорядочивать, группировать и агрегировать датасеты, а также создавать графики, карты и другие визуализации.Программистика || #doc
5 579
Простые аннотации функций в Python:
int, str, list, dict, Optional, Union
Python — динамический язык, и переменные могут менять тип в процессе выполнения. Это гибко, но иногда опасно: IDE и статические анализаторы не могут заранее понять, какие типы вы используете. Type hints (аннотации типов) решают эту проблему. Они помогают:
🟢 Писать более понятный код. 🟢 Легче отлавливать ошибки ещё до запуска программы. 🟢 Получать автодополнение и подсказки в IDE.➡️Давайте разберём базовые аннотации, которые пригодятся каждому. 1️⃣ int и str Самые простые типы. Используем для чисел и строк.
def multiply(x: int, y: int) -> int:
return x * y
def greet(name: str) -> str:
return f"Hello, {name}!"
Когда использовать:
🟢 Всегда, когда функция ожидает конкретный тип данных. 🟢 Позволяет IDE предупреждать, если вы случайно передадите, например, строку вместо числа.2️⃣ list и dict Аннотировать коллекции важно, чтобы понимать, что внутри списка или словаря.
from typing import List, Dict
def sum_numbers(numbers: List[int]) -> int:
return sum(numbers)
def count_words(text: str) -> Dict[str, int]:
words = text.split()
return {word: words.count(word) for word in words}
Когда использовать:
🟢 Когда функция работает с коллекциями. 🟢 Чтобы читатели кода (и IDE) сразу видели, какие типы элементов внутри.💡 Важно: просто писать
list или dict можно, но List[int] и Dict[str, int] дают точную информацию о содержимом.
3️⃣ Optional
Optional[X] означает: аргумент может быть либо типом X, либо None.
from typing import Optional
def greet(name: Optional[str] = None) -> str:
if name is None:
return "Hello, stranger!"
return f"Hello, {name}!"
Когда использовать:
👍 Когда параметр необязательный. 👍 Когда функция может вернуть None.⚠️ Не путать с обычным значением по умолчанию — Optional именно про тип, а не про дефолт. 4️⃣ Union
Union[X, Y] означает: параметр может быть любого из указанных типов.
from typing import Union
def stringify(value: Union[int, float]) -> str:
return str(value)
Когда использовать:
👍 Когда функция принимает несколько типов, но обрабатывает их одинаково. 👍 Например, числа с плавающей точкой и целые, или строку и число.💡 С Python 3.10+ есть сокращённая запись:
def stringify(value: int | float) -> str:
return str(value)
✔️ Ключевые советы
👉Аннотируйте всё, что важно для понимания функции. Даже простые функции лучше типизировать. 👉 Используйте Optional, когда допускаете None. 👉 Union нужен, если аргумент может быть нескольких типов. 👉 IDE и линтеры (mypy, Pyright) будут проверять ваш код и предупреждать об ошибках типов.🗣 Используя эти простые типы (
int, str, list, dict, Optional, Union), вы уже делаете код чище, безопаснее и понятнее для команды и IDE.
Программистика || #Статья5 579
👀 Изучаем Data Science: обработка, исследование, визуализация и моделирование данных с помощью Python
Рассмотрена работа с инструментами pandas и SQL, методы выявления закономерностей и очистки данных. Описаны различные источники информации, включая текстовые, бинарные и веб-данные. Подробно изложены статистические методы: доверительные интервалы, проверка гипотез, конструирование признаков. Приведены практические примеры на языке Python из разных областей: анализ транспортных систем, экологические исследования, ветеринарная аналити-ка. Заключительные разделы посвящены логистической регрессии и оптимизации моделей с применением к задачам классификации текстов.Программистика || #doc
5 579
👩💻 TypeVar, Generic и Protocol — как писать библиотеки с полной поддержкой type hints
Если вы создаёте библиотеку для Python, просто писать
def foo(x: int) -> str недостаточно. Пользователи хотят автодополнение, строгую проверку типов и документацию прямо в IDE. Для этого есть TypeVar, Generic и Protocol. Разбираемся без магии.
🧱 Почему обычных type hints мало
🟢 Локальные hints полезны, но не передают зависимости типов:
def first(lst: list) -> str:
return lst[0]
➡️ IDE не понимает, что возвращаемый тип зависит от типа элементов списка.
📌 TypeVar — универсальный тип
TypeVar позволяет указать, что один и тот же тип повторяется:
from typing import TypeVar, Sequence
T = TypeVar('T') # универсальный тип
def first(lst: Sequence[T]) -> T:
return lst[0]
x: int = first([1, 2, 3]) # IDE знает: x -> int
y: str = first(["a", "b", "c"]) # IDE знает: y -> str
✅ Полезно для функций, где вход и выход зависят друг от друга.
📦 Generic — обобщённые классы
Если вы пишете класс, который работает с любыми типами:
from typing import Generic, TypeVar
T = TypeVar('T')
class Stack(Generic[T]):
def __init__(self) -> None:
self.items: list[T] = []
def push(self, item: T) -> None:
self.items.append(item)
def pop(self) -> T:
return self.items.pop()
stack_int = Stack[int]()
stack_int.push(42)
x = stack_int.pop() # IDE знает: x -> int
➡️ Без Generic IDE не сможет подсказать тип элементов.
🧩 Protocol — контракт интерфейса
Protocol позволяет объявлять «как должен себя вести объект», без жёсткого наследования.
from typing import Protocol
class SupportsClose(Protocol):
def close(self) -> None:
...
def cleanup(resource: SupportsClose) -> None:
resource.close()
class FileLike:
def close(self) -> None:
print("Закрыто")
cleanup(FileLike()) # ✅ Типы совпадают, работает
✅ Protocol полезен для duck typing + type hints.
🪖 Комбинируем всё
Можно делать библиотеки с полной типизацией и автодополнением:
from typing import Generic, TypeVar, Protocol
T = TypeVar('T')
class Serializer(Protocol[T]):
def serialize(self, value: T) -> str:
...
def deserialize(self, data: str) -> T:
...
class IntSerializer:
def serialize(self, value: int) -> str:
return str(value)
def deserialize(self, data: str) -> int:
return int(data)
def save_value(serializer: Serializer[T], value: T) -> str:
return serializer.serialize(value)
s = save_value(IntSerializer(), 42) # IDE знает: s -> str
💡 Запомни
👉 TypeVar — для связывания типов входа и выхода 👉 Generic — для обобщённых классов 👉 Protocol — для интерфейсов и duck typing🗣 Если хотите пост про
Literal, Final, TypedDict и продвинутые паттерны типизации — пишите темы, мы сделаем! 🚀
Программистика || #Статья
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
