en
Feedback
Программистика

Программистика

Closed channel

Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager

Show more
5 578
Subscribers
-324 hours
-427 days
-12830 days
Posts Archive
В каких сценариях особенно опасны изменяемые аргументы по умолчанию?
Anonymous voting

⚙️ Изменяемые значения по умолчанию: тихий убийца функций в 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
Так ты избегаешь скрытого общего состояния между вызовами и делаешь функцию предсказуемой, особенно важно для библиотек и обработчиков в веб-приложениях. Программистика || #Советы

🍔 Пользовался Яндекс Едой? Поздравляю – ты уже в открытой базе с ФИО, телефоном и точным адресом. И все твои данные перепрод
🍔 Пользовался Яндекс Едой? Поздравляю – ты уже в открытой базе с ФИО, телефоном и точным адресом. И все твои данные перепродаются сотни раз, пока не попадут в руки недоброжелателей. Чтобы избежать таких ситуаций в будущем и начать что-то понимать в IT – сохраняй каналы: ➡️ Промт Хакера – хакинг и кибербезопасность ➡️ Ai-чница — секреты ChatGPT и ИИ от хакера ➡️ Войти в IT — Python и веб-разработка с нуля до первых денег ➡️ Технолоджия — Data Science без высшей математики ➡️ ИИ тебя заменит! — прокачка hardskills ➡️ IT индус — лучшие мемы для своих 😒 Советуем сохранить всё сразу, пока не заблокировали: @EvgHackList

Яндекс приглашает аналитиков на Weekend Offer Ищем опытных аналитиков, чтобы вместе создавать технологии, которые меняют мир. Кого мы ищем ✅ Аналитиков с опытом работы на Python от 3 лет. ✅ Готовы работать в офисе или гибридном режиме в Москве или Санкт-Петербурге. С релокацией из других городов РФ поможем. Как всё устроено ✅ До 3 декабря регистрируйтесь на сайте. ✅ 6 декабря решаете задачи на двух технических секциях. ✅ 7 декабря знакомитесь с командами и получаете офер. В Яндексе наука и бизнес работают вместе. Мы опираемся на научные исследования и аналитические данные, а потом превращаем их в технологии и реальные продукты. Присоединяйтесь, чтобы строить полезные сервисы вокруг ИИ-технологий, находить новые решения и делать то, что другим не по силам. Зарегистрироваться #реклама yandex.ru О рекламодателе

👀 Python для геймеров: ООП Курс для тех, кто уже знает основы Python и хочет наконец понять, как работает ООП без заумных ре
👀 Python для геймеров: ООП Курс для тех, кто уже знает основы Python и хочет наконец понять, как работает ООП без заумных речей и страшных слов. Всё просто, пошагово и на примерах из игр.
🌐 Ссылка
Программистика || #Course

Айтишник, присаживайся поудобнее: собрали для тебя подборку лучших каналов про ИИ, разработки и языки кода. • Only GPT — твой
Айтишник, присаживайся поудобнее: собрали для тебя подборку лучших каналов про ИИ, разработки и языки кода. Only GPT — твой гид по нейронкам, секретным функциям GPT 5.1 и способам обхода внутренней цензуры. Only Hack — канал профессионального хакера про приватность и безопасность. Only Apple — инсайды о новых девайсах Apple и утечки от разработчиков компании. Only Python — ТОП-1 бесплатные материалы по питону в Интернете. Only IT — прорывные стартапы, которые задают тренды в индустрии. Only GitHub — всякие полезности (и бесполезности) с Гитхаба. • Only Tech — все самые свежие и актуальные технологии. • Ну и мемасики про IT конечно Сохраняй в подписках!

Какой из следующих кодов корректно использует @classmethod для создания альтернативного конструктора?
Anonymous voting

🖥 Robyn — это асинхронный веб-фреймворк для Python, который использует Rust для высокой производительности! Он позволяет соз
🖥 Robyn — это асинхронный веб-фреймворк для Python, который использует Rust для высокой производительности!
Он позволяет создавать быстрые веб-приложения, сочетая удобный API на Python с низкоуровневыми оптимизациями Rust. Robyn поддерживает асинхронные обработчики запросов, масштабируемую обработку соединений и удобную маршрутизацию, что делает его отличным выбором для высоконагруженных сервисов.
🐱 Ссылка на GitHub Программистика || #Library

👩‍💻 Классы, методы и свойства — что, где и зачем? Новички часто путают, чем отличаются методы класса, методы экземпляра и статические методы. Вот кратко — без магии, только практика и ловушки. 👍 Методы экземпляра — работают с конкретным объектом
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()!
✍️Пиши — с чем чаще всего путаешься и хотел бы разобрать примеры! Программистика || #Статья

Удаляйте ChatGPT. Вы не умеете им пользоваться. Большинство пользователей спамит в ИИ всякую чушь — просят рассказать анекдот
Удаляйте ChatGPT. Вы не умеете им пользоваться. Большинство пользователей спамит в ИИ всякую чушь — просят рассказать анекдот, изливают душу и используют как Гугл. Российский тимлид OpenAI Вадим Петрич рассказывает в «Доктор GPT» как извлекать из нейронок максимум пользы. Это очень интересно: • ТОП №1 нейросеть, генерирующая видео без цензуры вообще • Готовые промты на все случаи жизни • Инсайды и разработки от китов индустрии Подпишитесь, с Доктором GPT нейронки станут инструментом роста, а не безделушкой: https://t.me/+fMjqBvMUQ3RkYzEy

👩‍💻БЕСПЛАТНЫЙ ХОСТИНГ ТЕЛЕГРАМ БОТА на PYTHON
🎥Первоисточник
Программистика|| #video

Хостинг Telegram-бота БЕСПЛАТНО за 5 минут
🎥Первоисточник
Программистика|| #video

Кто сказал, что после 11.11 скидок не бывает? Это точно не про нас, потому что в Kata Academy объявляется черная пятница! ⚡Се
Кто сказал, что после 11.11 скидок не бывает? Это точно не про нас, потому что в Kata Academy объявляется черная пятница! ⚡Сейчас у тебя есть возможность обучаться с приятной скидкой на наших курсах: - с гарантированным трудоустройством; - с гарантированной зарплатой (Fe - от 100.000, Go/Java - от 120.000); - с подготовкой к собеседованиям; ... И сразу после обучения ты получишь свой первый оффер❤️ Перейти на сайт #реклама 16+ kata.academy О рекламодателе

Функция должна принимать необязательный список целых чисел и может вернуть либо строку, либо None. Как правильно описать типы такой функции? Что должно быть ИСПОЛЬЗОВАНО в аннотациях?
Anonymous voting

👀 Python для data science Python — идеальный выбор для манипулирования и извлечения информации из данных всех видов. «Python
👀 Python для data science
Python — идеальный выбор для манипулирования и извлечения информации из данных всех видов. «Python для data science» познакомит программистов с питоническим миром анализа данных. Вы научитесь писать код на Python, применяя самые современные методы, для получения, преобразования и анализа данных в управлении бизнесом, маркетинге и поддержке принятия решений. Познакомьтесь с богатым набором встроенных структур данных Python для выполнения основных операций, а также о надежной экосистемы библиотек с открытым исходным кодом для data science, включая NumPy, pandas, scikit-learn, matplotlib и другие. Научитесь загружать данные в различных форматах, упорядочивать, группировать и агрегировать датасеты, а также создавать графики, карты и другие визуализации.
Программистика || #doc

Простые аннотации функций в 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. Программистика || #Статья

👀 Изучаем Data Science: обработка, исследование, визуализация и моделирование данных с помощью Python Рассмотрена работа с и
👀 Изучаем Data Science: обработка, исследование, визуализация и моделирование данных с помощью Python
Рассмотрена работа с инструментами pandas и SQL, методы выявления закономерностей и очистки данных. Описаны различные источники информации, включая текстовые, бинарные и веб-данные. Подробно изложены статистические методы: доверительные интервалы, проверка гипотез, конструирование признаков. Приведены практические примеры на языке Python из разных областей: анализ транспортных систем, экологические исследования, ветеринарная аналити-ка. Заключительные разделы посвящены логистической регрессии и оптимизации моделей с применением к задачам классификации текстов.
Программистика || #doc

👩‍💻 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 и продвинутые паттерны типизации — пишите темы, мы сделаем! 🚀 Программистика || #Статья

💸Как с нуля сделать систему оплаты в боте?
🎥Первоисточник
Программистика|| #video