TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #58

@pythonotes

Python Заметки

Прегледи579Број на прегледи
Објавено29 мар.29.03.2020 г., 09:00
Содржина

Содржина на објавата

Что именно мы можем импортнуть из будущих версий? Явно не всё, иначе это была бы, собственно, новая версия. В ˍˍfutureˍˍ выносятся только ключевой функционал, от которого серьезно зависит синтаксис или использование возможностей языка. Самое очевидное это директива print, которая в Python3 стала функцией print(). from __future__ import print_function Что стало удобней с этой функцией? 🔸 Теперь это функция а не ключевое слово, её можно передать как аргумент или вернуть как результат def get_logger(): if condition: return some_handler.write else: return print 🔸 С помощью аргументов sep и end можем настроить минимальное форматирование вывода. sep: разделитель для нескольких объектов end: последний символ вместо перехода на новую строку >>> items1 = [1, 2, 3] >>> items2 = [4, 5, 6] >>> print(*items1, sep='-', end='-') >>> print(*items2, sep='-') 1-2-3-4-5-6 🔸 Аргумент flush форсированно пробрасывает буфер аутпута в файл. Полезно для вывода из блокирующих операций. Например, когда вам нужно в stdout выводить прогресс операции, запущенной в subprocess. Если не сделать flush то весь аутпут прилетит только по завершению процесса. for i in range(100): print(f'Progress: {i}%', flush=True) time.sleep(1) Этот прогресс мы можем отслеживать в реальном времени. А вот так приходилось делать раньше: import sys sys.stdout.write(text + '\n') sys.stdout.flush() 🔸 Аргумент file позволяет перенаправить вывод в другой поток. Например в файл, сеть или что угодно, что имеет метод write. print(text, file=open('filename.txt', 'w')) ___________ Ну да, теперь приходится писать лишние скобочки и сложно переучиться на новый лад. Но плюсов, я думаю, больше. #2to3#tricks