#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Python Academy
Яндекс проведет YaTalks — главный ивент для разработчиков

Конференция пройдет 3 и 4 декабря. В первый день — препати, во второй — основная программа. Кроме докладов по актуальным и практическим темам предполагаются и дискуссии — будет, о чем поспорить:

— Романтика vs стабильность: как найти баланс между звёздными целями и ежедневными задачами?
— Женщины в IT: как избавить индустрию от стереотипов?
— Какой путь выбрать: попасть в компанию мечты или создать её самому?
— Как дорасти до топ-менеджера и стоит ли к этому стремиться?

Подробная программа и регистрация на YaTalks по ссылке.
Forwarded from Python Academy
Логирование

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

Python поставляется для этих целей с гибким модулем logging. Для создания объекта Logger, вызываем функцию getLogger, передавая в нее имя логера.

Созданный объект Logger предоставляет методы для записи сообщений разного уровня (DEBUG, INFO, WARNING, ERROR, CRITICAL), что удобно для поиска нужной информации с применением фильтров.

По умолчанию в logging задан уровень WARNING, это означает, что сообщения уровня DEBUG и INFO будут игнорироваться при записи в лог. Изменить данное поведение можно с помощью метода setLevel, передав минимальный уровень, который будет отлавливаться.

Для отправки логов в сконфигурированные места используются обработчики. Мы можем использовать уже существующие хэндлеры, либо создать свой класс обработчика, унаследовавшись от базового класса Handler.

#logging
Forwarded from Python Academy
Проверка истинности объекта класса

Для того, чтобы определить поведение при проверке на истинность объектов классов в python3 есть "магический" метод __bool__(), который был добавлен на замену устаревшему __nonzero__() в python2.

Если данный метод определен в классе, то он будет вызываться при каждой проверке объекта на истинность а также с помощью функции bool(). Метод должен возвращать False или True.

Если __bool__() не определен, будет вызываться метод __len__(), если он определен, и, соответственно, объект будет считаться истинным, если результат __len__() не будет равен нулю. Если в классе не определены ни __len__(), ни __bool__(), все его экземпляры будут истинными.

#magic #__bool__
Forwarded from Python Academy
Аргументы командой строки

При запуске программ через терминал можно указывать аргументы через пробел. В Python список этих аргументов хранится в переменной argv во встроенном модуле sys.

Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.

#sys
Forwarded from Python Academy
Режим разработки

Оказывается, еще в Python 3.7 появилась возможность запускать скрипты со специальным флагом -X для указания различных вариантов реализации.

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

Также этот режим выводит дополнительные предупреждения в следующих случаях:

— Незакрытые файлы;
— Unawaited корутины;
— Неизвестная кодировка для str.encode;
— Проблемы с выделением памяти.

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

#python
Что выведет код?
import pickle
s = pickle.dumps({"x": 1})
a = pickle.loads(s[1:])["x"]
print(a)
Что выведет код?
class A:
def __call__(self):
return self
a = A()
print(a is a(), a() == a()())
Что выведет код?
from functools import reduce
vals = (chr(x) for x in range(ord('a'), ord('d')))
print(reduce(lambda acc, x: x + acc[::-1] + x, vals, ''))
Дан код
from collections import namedtuple  
rec = namedtuple('rec', ['x', 'y', 'z'])
comp = rec(1, 2, [4, 5])
Что выведет код?
import struct
s = struct.pack('fhb', 1, 1, 1)
print(len(s))
Forwarded from HABR FEED + OPENNET
[Перевод] TalkPython: лучшие пакеты Python по итогам 2021 года
https://habr.com/ru/post/598647/?utm_source=habrahabr&utm_medium=rss&utm_campaign=598647
Tags: Блог компании SkillFactory, Python, Программирование, Data Engineering, Читальный зал, skillfactory, python, подборка, пакеты, data engineer, data engineering, data science, гвидо ван россум, подкасты, подкасты для разработчиков
Author honyaki #habr
from colorama import Fore, Back, Style

print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Back.BLUE + 'and with a green background')
print(Back.MAGENTA + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')

#python #colors #colorama