Библиотека питониста | Python, Django, Flask
40.4K subscribers
2.8K photos
75 videos
51 files
4.38K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
Библиотека питониста | Python, Django, Flask pinned «Объявляем конкурс на самый интересный контент в телеграм-каналах Proglib! Призовой фонд — 280 тысяч рублей. Автор лучшего поста в отдельно взятом канале получает 20 тысяч рублей. В каналах по языкам программирования, data science и мобильной разработке интересно…»
Method Resolution Order

В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.

Этот порядок можно получить при помощи атрибута __mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в C и в самом конце в object.

Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
Узнать все о функции

Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?

Для всех этих действий существует две функции dir() и help(). Первая возвращает список всех доступных для функции методов. Вторая возвращает текстовую документацию.

Очень удобно использовать dir() когда не знаешь, как точно пишется метод.
С помощью help() можно узнать все об объекте и его методах даже без подключения к интернету.
Вычисляем размер объектов в памяти

Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default]). Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.

Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.

Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .

Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.

#sys #sizeof #oop
👍1
Есть опыт и знания в IT, которыми Вы хотите поделиться ?

Станьте автором технических статей вместе с Proglib
и получайте достойное вознаграждение!

Библиотека программиста приглашает к сотрудничеству внештатных авторов,
которые хотят поделиться знаниями, пропиарить свой авторский блог или просто заработать.
Мы предлагаем удаленную работу, гибкий график, возможность зарабатывать до 12к за статью и выплаты 2 раза в месяц.
Мы не ограничиваем в количестве статей.
Постоянным авторам предусмотрены премии за лояльность.

Интересующие направления для написания статей:
• DevOps
• Блокчейн
• Информационная безопасность
• Ruby on Rails
• C/ C++/ C#
• Java
• Go разработка
• Разработка игр
• Android-разработка
• iOS-разработка
• Системная аналитика
• Тестирование ПО
• Виртуальная реальность
• 1С
• Business Intelligence
• Интернет вещей
• Системы и сети
• IT Management

Оставьте заявку на https://proglib.io/w/b4cfab63 и мы свяжемся с вами!
Страховой Дом ВСК перестраивает свой бизнес и переводит его в digital.

Для тех, кто в ближайшее время присоединится к ИТ-команде ВСК, это шанс получить уникальный опыт: выстроить новую технологическую компанию.

Возможности быстрого карьерного и профессионального роста прилагаются!
Именование среза с использованием функции slice

Работа с множеством значений, которые заданы индексами, может быстро обернуться беспорядком – как в плане поддержки, так и в плане читабельности кода.

Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Но есть и более удачный способ написания качественного кода, как показано на картинке..

#трюки
💻 Какие IT каналы в Telegram читаем мы?

Сегодня представляем вашему вниманию 5 каналов, которые действительно этого заслуживают. Подписывайтесь на наших друзей:

CodeCampМастхэв канал для любого IT-специалиста: лучшие книги, полезные сервисы и отборные видеоуроки.

@bugfeature — Подлинный канал "Не баг, а фича", который раскрывает секреты социальных сетей, уязвимости приложений, а так же рассказывает об этичном хакинге, анонимности в сети и личной безопасности в интернете.

@front_end_dev – Актуальные материалы для веб-разработчика: статьи, туториалы, инструменты, фишки ЯП и лучшие практики.

@S_E_Book — Самая редкая и актуальная литература в сети, для ИТ специалистов любого уровня и направления, которая публикуется еще до момента выхода в официальных источниках.

GIT — Канал, где Вы найдете уникальные онлайн-сервисы и инструменты на все случаи жизни.
Ускоряем код с помощью векторизации

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

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

По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.

#vectorize #numpy
Библиотека программиста планирует организовать серию офлайн-мероприятий.
Мы создали опрос, чтобы учесть пожелания и интересы подписчиков, а также какие темы наиболее интересны. Опрос займет не более 3-х минут и пройти его можно тут.
👍2
Нахождение наиболее частых элементов списка

Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.

Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.

#collections #counter
👍1
Библиотека питониста | Python, Django, Flask pinned «Библиотека программиста планирует организовать серию офлайн-мероприятий. Мы создали опрос, чтобы учесть пожелания и интересы подписчиков, а также какие темы наиболее интересны. Опрос займет не более 3-х минут и пройти его можно тут.»
Параметры функции *args, **kwargs

Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.

В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.

В целом, конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.

#functions #arguments
#job #вакансия #remote #удаленка #middle #senior #Django
Django Education Senior

Stepik совместно с JetBrains создаёт англоязычную платформу, с помощью которой любой желающий может изучать программирование и получить необходимые знания для старта в профессии: https://hyperskill.org/

Сейчас мы занимаемся направлением Django и ищем опытного разработчика, который сможет проверять создаваемые материалы с профессиональной точки зрения.

Мы обещаем:

- нагрузку ~5 часов в неделю
- легкую совместимость с основной работой, вы сможете работать в комфортном темпе в любое удобное время
- ставку от $8 / час
- участие в крутом проекте и амбициозную команду.
- доступ к образовательным ресурсам Hyperskill
- мерч от JetBrains

А с вас -- опыт в Django-разработке и заинтересованность в развитии онлайн-образования 🙂
Тг: @Aleron75infskin
Pyperclip

Модуль pyperclip имеет функции copy() и paste(), которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.

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

Установить этот модуль можно привычным способом через пакетный менеджер pip.

#pyperclip #модули
Вы наверняка заметили, что мы регулярно проводим опросы, чтобы соответствовать вашим запросам и интересам. Знаем, что нас читают не только новички – многие подписчики уже стали миддлами и даже сеньорами. Если чувствуете, что переросли middle-уровень, пора задуматься о создании собственного полноценного проекта – не на одни выходные.

Для такой задачи нужно широкое видение процесса разработки и архитектуры информационных систем. На одной интуиции можно набить шишек, а книжки по таким вопросам достаточно быстро устаревают. Обратите внимание на страницу курса Архитектор ИТ https://proglib.io/w/1790aa41

На странице можно почерпнуть сведения о том, какие знания нужны, и составить собственную программу-максимум. Или сэкономить время и воспользоваться учебным планом GeekBrains – благо уже есть площадка с контентом, приглашенные эксперты-практики и 4 курсовых проекта с поддержкой крупных компаний.
🐍 Скрытые сокровища Python

Изучая документацию Python для собственного удовольствия, можно найти трюки, которые обязательно ускользнут от вашего внимания в программистской рутине. Рассказываем о наиболее любопытных из них.

https://proglib.io/sh/K9EewnaibA