28154
Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
🚫 Ловушка с аргументами *args и **kwargs без передачи дальше
В Python *args и **kwargs часто используются для гибкости, но ошибка — принимать их и не передавать дальше в базовые классы или функции. Это «глотает» параметры и может ломать поведение программы.
✔️ Всегда передавайте *args и **kwargs, если не уверены, что они вам не нужны.
Python Learning 👩💻
С кодом у тебя всё ок.
Если что-то не работает — смотришь логи, находишь баг, фикcишь.
А с женщинами ощущение, будто:
— документации нет
— поведение недетерминированное
— один и тот же input → разный output
— вчера работало, сегодня — игнор
Ты вроде нормальный парень.
Не токсик. Не дурак. Не бедный.
По логике этого должно хватать.
Но система не сходится.
Ты общаешься — вроде без ошибок.
А в ответ холод, странные реакции или «давай как-нибудь потом».
Самое бесячее — ты не понимаешь, где именно происходит краш.
Со временем я понял простую вещь:
в отношениях и общении с женщинами другая архитектура.
Не интуиция. Не магия.
Просто другие правила, которые никто не объяснил.
В этом канале я разбираю это как систему:
что реально влияет, где ты теряешь контроль,
и как перестать действовать методом тыка.
Если ты привык дебажить, а не гадать — оставайся. Тут будет полезно: /channel/+T1mzcKH__J80NmI6
⚙️ types.DynamicClassAttributetypes.DynamicClassAttribute позволяет переопределять доступ к атрибутам на уровне класса, а не экземпляра. Это полезно, если поведение свойства должно отличаться при обращении через экземпляр и через сам класс.
Python Learning 👩💻
🚫 Антипаттерн недели: Использование изменяемых объектов как ключей в словаре
В Python ключи в dict должны быть неизменяемыми (immutable). Если использовать изменяемые объекты (списки, множества), это приведёт к TypeError, так как такие объекты нехешируемы.
✔️ Используйте кортежи или строки в качестве ключей.
Python Learning 👩💻
⚙️ rich.print()rich.print() — это удобный способ красиво выводить текст, таблицы и логи в терминал с поддержкой цветного форматирования. Библиотека rich делает консольные приложения более читаемыми и наглядными.
🔗 Документация
Python Learning 👩💻
⚙️ signal.set_wakeup_fd()signal.set_wakeup_fd() позволяет отправлять сигналы в файловый дескриптор вместо стандартного обработчика сигналов. Это полезно для обработки сигналов в асинхронных приложениях.
Python Learning 👩💻
⚙️ inspect.currentframe()inspect.currentframe() позволяет получить текущий стек вызовов и информацию о выполняемом коде. Это полезно для отладки, логирования и анализа исполнения программы.
Python Learning 👩💻
⚙️ inspect.getgeneratorstate()inspect.getgeneratorstate() позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.
Python Learning 👩💻
⚙️ threading.Timer()
Метод threading.Timer() позволяет создавать таймеры, которые выполняют определенную функцию через заданный интервал времени. Это полезно для отложенного выполнения задач без блокировки основного потока.
Python Learning 👩💻
⚙️ dis.Bytecode()
Метод dis.Bytecode() из модуля dis позволяет анализировать байт-код Python-функций. Это полезно для оптимизации кода и понимания его работы на уровне интерпретатора.
Python Learning 👩💻
❓ Вопрос на собеседовании
Как работает weakref в Python, и когда его стоит использовать?
Ответ ⬇️
Модуль weakref позволяет создавать слабые ссылки на объекты, которые не предотвращают их сборку мусора. Это полезно, когда нужно отслеживать объекты без продления их времени жизни, например, в кешах или при управлении зависимостями в больших структурах данных.
Пример использования ⚙️
import weakref
class Data:
def __del__(self):
print("Объект удалён")
obj = Data()
weak_ref = weakref.ref(obj)
print(weak_ref()) # <__main__.Data object at 0x...>
del obj
print(weak_ref()) # None (объект удалён)
⚙️ __slots__
Метод __slots__ позволяет явно указать, какие атрибуты может иметь объект класса, что значительно уменьшает потребление памяти и ускоряет доступ к атрибутам. Это особенно полезно при создании большого количества экземпляров класса.
Python Learning 👩💻
⚙️ shutil.disk_usage()
Метод shutil.disk_usage() из модуля shutil предоставляет информацию о месте на диске, включая общий объём, используемое и доступное пространство. Это полезно для мониторинга состояния файловой системы.
Python Learning 👩💻
Изучили базу по Python и не знаете, как кодить еще лучше?
✅ Пройдите бесплатный курс по настройке инструментов Python в Академии Selectel.
Рассказываем, что изучать после основ и как не зациклиться на типовых навыках на старте. В программе курса:
🔸 освоим Python-инструменты для упрощения работы с кодом: SonarLint, Myry и другие;
🔸 протестируем библиотеку Tkinter, чтобы создавать приложения с графическим интерфейсом;
🔸 расскажем, как парсить данные с веб-сайтов и закрепить полученные знания на практике.
Все материалы бесплатные. Проходите курс в комфортном темпе в Академии Selectel: https://slc.tl/4vqkv
Реклама. АО "Селектел". erid:2W5zFG1xKC4
🚫 Антипаттерн недели: Неоптимальная проверка на принадлежность в списке
Использование списков для проверки на принадлежность с оператором in приводит к линейному времени выполнения, что может быть медленным для больших наборов данных.
✔️ Используйте set для проверки на принадлежность, чтобы снизить время выполнения до O(1).
Python Learning 👩💻
⚙️ re.subre.sub заменяет все вхождения шаблона в строке на указанное значение. Это полезно для очистки и нормализации текста.
Python Learning 👩💻
Дорогие подписчики, поздравляю вас с наступающим новым годом! Пусть в 2026 году исполнятся все ваши самые заветные желания🎄🎄🎄🎄
Читать полностью…
⚙️ sys._debugmallocstats()sys._debugmallocstats() выводит статистику работы аллокатора памяти Python. Это полезно для анализа потребления памяти и оптимизации кода.
Python Learning 👩💻
⚙️ threading.excepthook()threading.excepthook() позволяет перехватывать исключения, возникшие в потоках, что полезно для логирования и предотвращения неожиданного завершения программы.
🔗 Документация
Python Learning 👩💻
От первой строчки кода — до миллионов запросов в секунду.
В VK бэкендеры решают задачи, которые действительно меняют цифровой ландшафт. Узнайте об их принципах работы и драгоценных победах. По ссылке — истории из первых рук и вакансии для тех, кто не боится вызовов.
⚙️ os.getloadavg()os.getloadavg() возвращает среднюю нагрузку на систему за последние 1, 5 и 15 минут. Это полезно для мониторинга производительности и загрузки CPU.
Python Learning 👩💻
⚙️ sys.setswitchinterval()sys.setswitchinterval() позволяет управлять частотой переключения потоков в Python, изменяя временной интервал между переключениями контекста. Это полезно для настройки многопоточных программ.
Python Learning 👩💻
⚙️ dataclasses.astuple()dataclasses.astuple() преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.
Python Learning 👩💻
🚫 Антипаттерн недели: Использование mutable default arguments
В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.
✔️ Используйте None в качестве значения по умолчанию и создавайте новый объект внутри функции.
Python Learning 👩💻
🚫 Антипаттерн недели: Использование range(len()) вместо enumerate()
В Python часто используют range(len(lst)) для итерации по списку с индексами, но это снижает читаемость кода и не является идиоматичным способом перебора элементов.
✔️ Используйте enumerate(), который позволяет одновременно получать индекс и значение элемента, делая код более читаемым и питоничным.
Python Learning 👩💻
🔍Тестовое собеседование на Middle Python с Senior из X5 уже завтра!
Уже завтра(11 ноября) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Олег, старший разработчик в X5, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Олег будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Олегу
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
⚙️ itertools.permutations()
Метод itertools.permutations() генерирует все возможные перестановки элементов заданной последовательности. Это полезно для задач, связанных с комбинаторикой.
Python Learning 👩💻
⚙️ concurrent.futures.as_completed()
Метод concurrent.futures.as_completed() позволяет обрабатывать завершение асинхронных задач в порядке их завершения. Это полезно для параллельной обработки, где важно начать работу с результатами, как только они готовы.
Python Learning 👩💻
⚙️ contextlib.nested
Модуль contextlib в Python позволяет обрабатывать несколько ресурсов с помощью менеджеров контекста более лаконично. Это полезно, когда работа идёт с большим числом файлов или объектов.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Оператор is проверяет, указывают ли обе переменные на один и тот же объект в памяти. Переменные x и y ссылаются на один объект, поэтому x is y возвращает True. Переменная z — новый объект с тем же содержимым, но другой областью в памяти, поэтому x is z возвращает False.