TGViewer
Channel Public Channel
Сообщество Программистов

Сообщество Программистов

@codeblog8

Здесь ты найдешь полезные материалы которые позволят тебе развиваться в IT.
А именно статьи, книги и курсы на тему Python, других языков программирования и IT технологий.

Youtube Канал: youtube.com/c/ZProgerIT
Автор канала: @zproger8
Subscribers
16.6K
Photos
116
Videos
9
Links
142

Showing posts older than #269 · Back to latest

Older Posts 19 shown
Post #268 25.4K
Post #267 29.4K
Post #266 32.2K
Post #265 29.8K
Post #264 29.4K
Post #263 29.7K
Добавляем логику в собственное исключение

Исключение можно поднять с аргументом и без него. Когда мы передаем аргумент, класс NetworkError подхватывает его и запускает первое условие, как показано на экране.

Вызов без аргументов, приведет к запуску условия else, что выведет базовую информацию об ошибке. Здесь предоставлен простой пример, однако можно добавить абсолютно любую логику.
  • 👍 53
  • 🔥 20
  • 🤔 8
Post #262 44.1K
Вот вы меня спрашиваете: почему я так активно начал снимать про Linux?

А все просто, я прочитал лицензионное соглашение 😎
  • 😁 352
  • 🔥 58
  • 👍 44
  • 🤯 8
  • 🤔 5
Post #259 50.8K
🌜Как и обещал, опубликовал видео на тему улучшения продуктивности и развития используя Obsidian. В видео показал все топовые плагины и подходы, которые позволяют это сделать, однозначно советую проанализировать схему и внедрить в свою жизнь.

В ближайшее время скину свою базу и список плагинов, чтобы вам было проще все это дело настроить.
Давайте наберем 80 🔥 для мотивации.

Также если мы наберем много лайков и комментариев под этим видео, я сниму отдельный ролик, где покажу как добавить метрики для отслеживания привычек и анализа эффективности, все это будет выстраиваться в графики, которые позволят проанализировать вашу деятельность.
  • 🔥 617
  • 👍 46
  • 🤯 8
  • 😁 5
  • 🤔 4
Post #258 30.1K
Post #257 26.2K
Monkey Patch. Перезапись сторонней библиотеки

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

В данном случае мы заранее создаем метод, который в дальнейшем будет перезаписывать requests.Session.get на наш метод. В итоге все дальнейшие вызовы будут использовать пропатченную версию new_get, которую мы реализовали.

100 🔥 и идем дальше.
  • 🔥 163
  • 👍 12
  • 🤔 6
Post #255 23.7K
Post #253 23.1K
Проверка изменений модулей с помощью importlib

Более того, если это динамическая программа, она подразумевает тот факт, что модули могут быть изменены в ходе выполнения программы.

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

80 🔥 и идем дальше
  • 🔥 156
  • 👍 4
  • 🤔 3
Post #252 19.7K
Динамический импорт модулей

В данном примере загрузка происходит на этапе выполнения программы, таким же образом можно загружать собственные модули 👇

import importlib

a = importlib.import_module("my_module")
print(a.run_func()) # Вызываем функцию из модуля

Пример на скриншоте показывает способ загрузки через ввод пользователя.

Ваш софт может содержать собственные модули, которые необходимо загружать только после запроса пользователя, и такой подход позволяет решить эту проблему.
  • 🔥 58
  • 👍 15
  • 😁 1
Post #250 19.7K
Post #249 20.6K
Еще один пример динамической генерации объектов

Похожие примеры были в этом видео. Если вы не знали, то type можно использовать в том числе и для создания новых классов.

При запуске получаем вывод:
"Dynamic Class: bla-bla-bla"

Все методы создаются ровно во время выполнения через анонимные функции. Используя такой подход мы можем динамически создавать нужные нам объекты.

100 🔥 и покажу как сделать динамическое наследование функционала.

Кстати это также примеры из курса ООП, на который сейчас действует новогодняя скидка.
Подробней о курсе рассказывал по этому тайм-коду.
  • 🔥 121
  • 👍 8
  • 🤯 7
  • 🤔 3
Post #248 18.5K
Добавляем индексы внутрь класса

1. Инициализация экземпляра. На этом этапе принимаем data и записываем его внутрь пространства self, который отображает созданный экземпляр (пункт 3).

2. Dunder метод getitem отрабатывает во время вызова 10й строчки кода (пункт 4). Он принимает тот самый index, благодаря которому мы можем вернуть значение из списка self.data.

3. Создаем экземпляр класса и передаем list.

4. Обращаемся по индексу, тем самым вызывая getitem.

80 🔥 и идем дальше
  • 🔥 113
  • 👍 15
  • 🤔 2
  • 😁 1
Post #246 21.1K
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →