Простейшее объяснение, зачем нужны Dunder-методы
Допустим, у нас есть класс Fruit с названием и ценой, плюс некие собственные методы.
Напрямую создавать экземпляры, передавая название и цену, не получится. НЯ ужно использовать магический метод __str__():
И теперь, если мы создадим экземпляр класса Fruit:
то он «схватит» аргументы в нужном режиме:
#лучшиепрактики
Допустим, у нас есть класс Fruit с названием и ценой, плюс некие собственные методы.
class Fruit:
def __init__(self, name, cost):
self.name = name
self.cost = cost
def method(self):
pass
Напрямую создавать экземпляры, передавая название и цену, не получится. НЯ ужно использовать магический метод __str__():
def __str__(self):
return f'{self.name}, €{self.cost}'
И теперь, если мы создадим экземпляр класса Fruit:
banana = Fruit('Banana', 10.5)
то он «схватит» аргументы в нужном режиме:
>>> print(banana)
... Banana, €10.5
#лучшиепрактики
💩16👍15👎4❤2😁1
Как применяется _ (нижнее подчёркивание)
1. Для читаемости больших чисел:
2. Для удержания в памяти временного «бесхозного» объекта. Если в Jupyter Notebook в ячейке один произвести операцию сложения:
то вызвать результат этого сложения в ячейке № 2 можно с помощью _:
#лучшиепрактики
1. Для читаемости больших чисел:
num = 9_000_000
binaryNum = 0b0_101
hexNum = 0x5_4fa
2. Для удержания в памяти временного «бесхозного» объекта. Если в Jupyter Notebook в ячейке один произвести операцию сложения:
4 + 5
то вызвать результат этого сложения в ячейке № 2 можно с помощью _:
>>> _
... 9
#лучшиепрактики
👍7
Рейтинг лучших программистов в мире 2023: полуфинал
В сегодняшнем раунде участвуют две пары:
— Бьёрн Страуструп, создатель С++;
— Билл Гейтс, сооснователь Microsoft.
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Линус Торвальдс, создатель Linux.
Ссылка на голосование
#баттлпрограммистов
В сегодняшнем раунде участвуют две пары:
— Бьёрн Страуструп, создатель С++;
— Билл Гейтс, сооснователь Microsoft.
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Линус Торвальдс, создатель Linux.
Ссылка на голосование
#баттлпрограммистов
💩25🏆3👍1
Способ выделить уникальные элементы списка: фильтр Блума
Фильтр Блума позволяет быстро определить, не входит ли элемент в заданное множество. Операции вставки и проверки выполняются за постоянное время, независимо от размера множества. Библиотека bloom-filter как раз и помогает реализовать такую функциональность:
#лучшиепрактики
Фильтр Блума позволяет быстро определить, не входит ли элемент в заданное множество. Операции вставки и проверки выполняются за постоянное время, независимо от размера множества. Библиотека bloom-filter как раз и помогает реализовать такую функциональность:
# Инициируем экземпляр фильтра
bloom = BloomFilter(max_elements=10000, error_rate=0.1)
# Проверка на наличие "test-key"
assert "test-key" in bloom is False
#лучшиепрактики
👍8❤🔥1🔥1
Ребят, ищем пишущего IT-редактора блогов в Tproger
Условия: удалёнка, фултайм
Что делать:
— искать темы, которые понравятся клиентам и заинтересуют читателей;
— вникать в эти темы настолько, чтобы говорить с экспертами примерно на одном языке;
— проводить интервью и собирать фактуру;
— превращать фактуру в статью, которую захочется читать и репостить;
— дорабатывать статью вместе с экспертами и менеджерами клиента.
Требования:
— пишешь логично и ёмко, видишь стилистические и речевые ошибки в тексте.
— быстро находишь и проверяешь информацию (в том числе в англоязычных источниках).
— любишь общаться с экспертами и умеешь их разговорить.
— спокойно реагируешь на комментарии, но можешь отстоять свою позицию, если правка неуместна.
— тактично вносишь правки, чтобы автор не расстраивался, а был благодарен за помощь.
— знаешь, что такое ключевое слово, мета-описание и зачем нужен Wordstat.
Чтобы откликнуться, заполняйте анкету.
Условия: удалёнка, фултайм
Что делать:
— искать темы, которые понравятся клиентам и заинтересуют читателей;
— вникать в эти темы настолько, чтобы говорить с экспертами примерно на одном языке;
— проводить интервью и собирать фактуру;
— превращать фактуру в статью, которую захочется читать и репостить;
— дорабатывать статью вместе с экспертами и менеджерами клиента.
Требования:
— пишешь логично и ёмко, видишь стилистические и речевые ошибки в тексте.
— быстро находишь и проверяешь информацию (в том числе в англоязычных источниках).
— любишь общаться с экспертами и умеешь их разговорить.
— спокойно реагируешь на комментарии, но можешь отстоять свою позицию, если правка неуместна.
— тактично вносишь правки, чтобы автор не расстраивался, а был благодарен за помощь.
— знаешь, что такое ключевое слово, мета-описание и зачем нужен Wordstat.
Чтобы откликнуться, заполняйте анкету.
👍4❤1👎1🤩1💩1
Финал баттла программистов
Выберите тех, кого вы лично считаете лучшим программистом мира, но помните: не ориентируйтесь на их популярность, востребованность или устоявшиеся топы лучших программистов. В этом турнире важны только народная любовь и ваша субъективная оценка.
За первое и второе место будут бороться:
— Бьёрн Страуструп, создатель С++;
— Линус Торвальдс, создатель Linux.
За третье и четвёртое место будут бороться:
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Билл Гейтс, сооснователь Microsoft.
Ссылка на голосование
#баттлпрограммистов
Выберите тех, кого вы лично считаете лучшим программистом мира, но помните: не ориентируйтесь на их популярность, востребованность или устоявшиеся топы лучших программистов. В этом турнире важны только народная любовь и ваша субъективная оценка.
За первое и второе место будут бороться:
— Бьёрн Страуструп, создатель С++;
— Линус Торвальдс, создатель Linux.
За третье и четвёртое место будут бороться:
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Билл Гейтс, сооснователь Microsoft.
Ссылка на голосование
#баттлпрограммистов
💩8🤡5👍2
Превратить кортеж в словарь одной строкой? Легко!
Допустим, у нас есть кортеж, где каждое значение – строка из двух символов:
Если “навесить” функцию dict():
то в результате мы получим словарь с разделёнными на «ключ – значение» парами:
#лучшиепрактики
Допустим, у нас есть кортеж, где каждое значение – строка из двух символов:
values = ('a1', 'b2', 'c3')
Если “навесить” функцию dict():
print(dict(values))
то в результате мы получим словарь с разделёнными на «ключ – значение» парами:
{'a': '1', 'b': '2', 'c': '3'}
#лучшиепрактики
🤮18🤡5💩4👍2👎2
Подборка актуальных вакансий
— Middle / Senior Backend-разработчик (Python) в Гринатом
Где: удалённо
Опыт: от 3 лет
— Программист-разработчик Python в Гринатом
Где: удалённо
Опыт: от 2 лет
— QA Automation (Python) в Иннотех
Где: удалённо
Опыт: от 3 лет
— Data Scientist в Открытие
Где: Москва, можно удалённо
Опыт: от 2 лет
— Team Lead Python-разработчик в Гринатом
Где: удалённо
Опыт: от 5 лет
— Data Engineer в Гринатом
Где: Москва
Опыт: от 3 лет
— Senior Python-разработчик в МТС
Где: Москва, можно удалённо
Опыт: от 4 лет
#вакансии #работа
— Middle / Senior Backend-разработчик (Python) в Гринатом
Где: удалённо
Опыт: от 3 лет
— Программист-разработчик Python в Гринатом
Где: удалённо
Опыт: от 2 лет
— QA Automation (Python) в Иннотех
Где: удалённо
Опыт: от 3 лет
— Data Scientist в Открытие
Где: Москва, можно удалённо
Опыт: от 2 лет
— Team Lead Python-разработчик в Гринатом
Где: удалённо
Опыт: от 5 лет
— Data Engineer в Гринатом
Где: Москва
Опыт: от 3 лет
— Senior Python-разработчик в МТС
Где: Москва, можно удалённо
Опыт: от 4 лет
#вакансии #работа
👍4👎4💩3
Преобразование русской речи в текст
В статье вы узнаете, как осуществить транскрибацию русской речи в текст при помощи Python и библиотеки vosk с использованием Deep Learning.
#texttospeech
В статье вы узнаете, как осуществить транскрибацию русской речи в текст при помощи Python и библиотеки vosk с использованием Deep Learning.
#texttospeech
👍5🔥2
Обработка больших файлов в Python с использованием параллельных процессов
Чтобы ускорить процессинг крупных объектов, вы можете разделить задачу на несколько подпроцессов. Это позволяет программе сократить длину рантайма.
В статье вы узнаете, как сократить время обработки с помощью multiprocessing, joblib и tqdm.
#multiprocessing
Чтобы ускорить процессинг крупных объектов, вы можете разделить задачу на несколько подпроцессов. Это позволяет программе сократить длину рантайма.
В статье вы узнаете, как сократить время обработки с помощью multiprocessing, joblib и tqdm.
#multiprocessing
🔥6
Как выбрать тему для PyCharm
Рано или поздно большинство разработчиков приходят к осознанию — удобство IDE влияет на многое: скорость решения затыка, среднюю длительность беспрерывной работы, удобство настройки интерфейса. Так что сегодня мы рассказали в статье о темах для PyCharm, об их видах и процессе установки.
#pycharm
Рано или поздно большинство разработчиков приходят к осознанию — удобство IDE влияет на многое: скорость решения затыка, среднюю длительность беспрерывной работы, удобство настройки интерфейса. Так что сегодня мы рассказали в статье о темах для PyCharm, об их видах и процессе установки.
#pycharm
🤣9🤔7👎3👍2
Бенчмаркинг Python 3.10 vs. 3.11: на 64% быстрее?
Благодаря подписчику @Trizalio мы можем поделиться с вами прекрасной статьёй: сравнение производительности разных версий Python.
Автор статьи запускает разные версии ЯП в Docker и использует утилиту
#факты
Благодаря подписчику @Trizalio мы можем поделиться с вами прекрасной статьёй: сравнение производительности разных версий Python.
Автор статьи запускает разные версии ЯП в Docker и использует утилиту
pyperformance
, чтобы вычислить время исполнения аналогичных скриптов.#факты
❤14👍5😨3
This media is not supported in your browser
VIEW IN TELEGRAM
Типичный курс Python для начинающих be like:
😁49🤡6👍5💩3🙏2
Прекрасная утилита для написания регулярок
Если судить по названию, то ihateregex.io написал человек, сытый по горло непрозрачностью регулярных выражений. Так и появилась замечательная веб-утилита, которая иллюстрирует, что значит тот или иной компонент регулярки.
При просмотре скрина легче не особо становится, но вся прелесть инструмента раскрывается, когда вы пишете выражение с нуля. И, что важно, с такими паттернами прекрасно дружит библиотека
#regex
Если судить по названию, то ihateregex.io написал человек, сытый по горло непрозрачностью регулярных выражений. Так и появилась замечательная веб-утилита, которая иллюстрирует, что значит тот или иной компонент регулярки.
При просмотре скрина легче не особо становится, но вся прелесть инструмента раскрывается, когда вы пишете выражение с нуля. И, что важно, с такими паттернами прекрасно дружит библиотека
re
, дополнительной подгонки не требуется.#regex
👍10🔥3💩1
Как быстро найти отличия в длинных похожих строках
Чтобы сравнить две строчные последовательности (например, генов):
можно использовать комбинацию zip() и enumerate(). Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (здесь всего 24):
Чтобы найти отличающиеся символы, достаточно сравнить символы попарно:
#лучшиепрактики
Чтобы сравнить две строчные последовательности (например, генов):
seq1 = 'atgcttcggcaagactcaaaaaata'
seq2 = 'atscttcsscaagactaaaaaaata'
можно использовать комбинацию zip() и enumerate(). Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (здесь всего 24):
zip_seqs = zip(seq1, seq2)
enum_seqs = enumerate(zip_seqs)
Чтобы найти отличающиеся символы, достаточно сравнить символы попарно:
for i, (a, b) in enum_seqs:
if a != b:
print(f'index: {i}')
... index: 2
... index: 7
... index: 8
... index: 16
#лучшиепрактики
❤12👍3👌3
Django: ваш первый проект
Перед тем, как приступить к созданию специфического функционала, необходимо выполнить несколько шагов и настроить ваш проект в рамках фреймворка.
В данном руководстве вы найдёте инструкцию по настройке проекта Django, которая будет полезна на первых этапах работы.
#django
Перед тем, как приступить к созданию специфического функционала, необходимо выполнить несколько шагов и настроить ваш проект в рамках фреймворка.
В данном руководстве вы найдёте инструкцию по настройке проекта Django, которая будет полезна на первых этапах работы.
#django
👍2
Что полезного в свежей версии Python: необязательные элементы TypedDict
Существует такой интересный конструкт
Теперь TypedDict имеет необязательные элементы:
Спасибо подписчику @Trizalio за годную подсказку.
Если вы знаете, о какой еще годной фиче из свежих релизов Python рассказать, поделитесь в комментариях. Интересные ответы мы превратим в посты с вашим упоминанием.
#лучшиепрактики
Существует такой интересный конструкт
typing.TypedDict
.Он позволяет добавлять подсказки о типах данных словарю:class Point2D(TypedDict):
x: int
y: int
label: str
a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK
b: Point2D = {'z': 3, 'label': 'bad'} # Не пройдет проверку
Теперь TypedDict имеет необязательные элементы:
class Movie(TypedDict):
title: str
year: NotRequired[int]
m1: Movie = {"title": "Black Panther", "year": 2018} # OK
m2: Movie = {"title": "Star Wars"} # OK (год необязателен)
m3: Movie = {"year": 2022} # Ошибка (не заполнено обязательное поле
)Спасибо подписчику @Trizalio за годную подсказку.
Если вы знаете, о какой еще годной фиче из свежих релизов Python рассказать, поделитесь в комментариях. Интересные ответы мы превратим в посты с вашим упоминанием.
#лучшиепрактики
👍23❤1
Большая книга примеров Python
Прекрасный гайд под авторством Марченко Антона – преподавателя МГУ. Книга знакомит с основной терминологией языка на доступных примерах. Это издание напоминает расшифровку документации и отличается упором на понятность. Помимо прекрасной подборки частоиспользуемых понятий, это ещё и способ подготовится к собеседованию на Junior Python Developer.
#обучение
Прекрасный гайд под авторством Марченко Антона – преподавателя МГУ. Книга знакомит с основной терминологией языка на доступных примерах. Это издание напоминает расшифровку документации и отличается упором на понятность. Помимо прекрасной подборки частоиспользуемых понятий, это ещё и способ подготовится к собеседованию на Junior Python Developer.
#обучение
👍19🔥6
Скончался создатель VIM, Брам Муленаар
Семья разработчика сообщила, что Брам ушёл из жизни 3 августа. Он посвятил значительную часть своей жизни развитию и совершенствованию Vim и с гордостью глядел на достижения сообщества.
Vim — это редактор с открытым исходным кодом. За время своего существования он получил множество наград и по-прежнему остается одним из самых популярных текстовых редакторов.
#vim
Семья разработчика сообщила, что Брам ушёл из жизни 3 августа. Он посвятил значительную часть своей жизни развитию и совершенствованию Vim и с гордостью глядел на достижения сообщества.
Vim — это редактор с открытым исходным кодом. За время своего существования он получил множество наград и по-прежнему остается одним из самых популярных текстовых редакторов.
:wq!
#vim
😢102🫡8❤3💩2
Свой API на Django
Полуторачасовая серия уроков, посвящённая созданию своего API (Application Programming Interface). Этот урок хорош тем, что объясняет не только логику вёрстки API, но и помогает развернуть проект на Django с нуля.
Ссылка на плейлист
#api #django
Полуторачасовая серия уроков, посвящённая созданию своего API (Application Programming Interface). Этот урок хорош тем, что объясняет не только логику вёрстки API, но и помогает развернуть проект на Django с нуля.
Ссылка на плейлист
#api #django
👌13👍1