Как стать автором
Обновить
8
0
Константин @kx13

Пользователь

Отправить сообщение

Автор сначала доказывает, что "декораторы — это не «функции, которые принимают функции и возвращают функции», а потом во всех полезных примерах исползует именно этот подход :)

Это уже не первая статья которая показывает насколько Python гибкий и многие вещи можно использовать "необычным способом" :)

В книге Лутца есть очень хороший и большой раздел про декораторы. Кому интересна эта тема рекомендую почитать. Тоже много интересных подробностей.

ну как же ничего общего.

Внешне очень похожи.
слово с собачкой перед именем функции.

Выглядит практически один в один.

С помощью синтаксиса с собачкой нужно писать гораздо меньше букв.
По сути применить декоратор

@contextmanager
def file_manager:
 ...

Это то же самое, что написать

file_manager = contextmanager(file_manager)

Первый вариант гораздо удобнее поэтому всем им и пользуются.

А по сути, как уже писали, декоратор - это обычная ФВП.

В Python из функциональных языков много всяких моментов надергано.

Есть отдельные библиотеки для реализации такой возможности. Так что при желании сделать можно.

Фреймворки тоже требуют "обслуживания". Например это исправление ошибок и резработка нового функционала.

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

Возможно в С-коде остается еще много вызовов к Питоновскому интерпретатору. Тот же math.sqrt через Питон вызывается, хотя здесь лучше взять его аналог из libc.

Можно переписать функцию, чтобы гененировался чистый Сшный код добавив спецификацию nogil. Тогда должно быть побыстрее.

def prime() nogil:

Можно еще проще, если в системе Python установлен (а он в современных популярных дистрах есть всегда)

> python3 -m http.server 8000

Будет простой сервер, который index.html будет показывать из каталога откуда запущен.

Как Вы хотите, к сожалению, тоже не работает.

Я тоже так хочу, как вы говорите: чтобы было было все просто и очевидно.

Но любая сложная система (к которой относится любой развитый язык программирования) полна различных "особенностей". Вопрос только в том, насколько их много и насколько они хитрые.

Надо быть реалистами и ожидать подвоха даже от самых "простых", "удобных" и "дружелюбных" инструментов. Поэтому, чем лучше R этот самый TFM, тем меньше сюрпризов будет.

Про дефолтные значения в FAQ еще написано
https://docs.python.org/3/faq/programming.html#id13
Я вообще всем новичкам рекомендую FAQ читать, а потом еще перечитывать. А его к сожалению мало читают, а там как раз много полезного, чтобы поменьше на грабли наступать.

В Epam на программе e-kids еще проводят курсы на игоровом движке Godot.

Получается что-то среднее между Python и Scratch.

Godot удобен в плане разворачивания окружения для работы: 1 исполняемый файл и все. Ну может еще пяток картинок, чтобы было из чего игрушку делать.

За 5 занятий вполне можно написать игрушку в стиле "geometry dash"

Отличная идея.

Можно сделать как надстройку над стандартной logging.

logger = Debuger.SetupLogger(*args)


# и далее как обычно, например так
# а библиотека уже в нужное окно отправит данные в зависимости от уровня логирования
logger.debug('text')

Для этого всего-то надо сделать несколько кастомных Handlers и Formatters внутри вызова SetupLogger.

И не надо никаких "printD(a,'...')"

logging очень гибкая библиотека с помощью Handlers и Formatters можно отправлять что угодно и куда угодно.

Почему-то сравниваются вещи сделанные принципиально для разных задач.

PyInstaller и cx-Freeze просто упаковщики питоновского кода со всеми библиотеками в отдельный архив и приделывание к нему exe файла для быстрого запуска. На производительность кода никак не влияют

Cython и Nuitka уже переводять код на питоне в код на языке C.

Причем для Cython надо самому код писать, который по сути Си с синтаксисом Python. Nutika пытается кое-что делает по проще. После этих инструментов программы могут действительно работать гораздо быстрее. Они вообще не про распространение пакетов.

А если нужно распостранять питоновские проекты, то все же лучше делать все через setuptools. Создать setup.py сделать архив с помощью команды sdist и отдать закачику.

Проблем гораздо меньше, чем со всякими PyInstaller.

Правда ему придется самому еще Python установить, но он ставится нажатием на кнопочку Next 5 раз (или около того) :)

У Python 4 есть все шансы повторить историю с Perl 6 :)

которые кажутся очень простыми, но подавляющее большинство опрошенных дали неправильные ответы

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

Поскольку в задачках формулируются очень необычные случаи, то для из решения очень хорошо надо разбираться в языке.

Я бы такие задачи задавал на собеседования для Senior разрабочиков, чтобы узнать насколько человек разбирается в языке и не будет подобные штуки писать в реальном коде :)

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

А мне такой кликообразный интерфейс сразу напомнил редактор acme из Plan9

https://habr.com/ru/post/208482/

Возможно Роб Пайк тоже работал с подобными лисп машинами.

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

Одно из. Есть и другие.

Это отражает сущность. Строго по Марксу. Надо остальные посмотреть.


А как оно будет при капитализме? Мне вот некоторые коммунисты обещают, что работать надо за ништяки от общества,

При коммунизме вы имеете ввиду?
Ну все правильно. Только не надо забывать, что каждый работник этому обществу тоже дает ништяки. И получает от него то, чего сам не делает.


но не будет ли тогда моя рабочая сила, опять же, товаром?

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

То есть фермер обязан продавать еду по себестоимости, да?

Зачем же так строго? :) Все продают с наценкой. Просто наценка может быть адекватная благодаря здоровой конкуренции. Но если приходит монополист или большая компания (личинка монополии). Можете попрощаться со свободным рынком. А монополии только растут. В обратну сторону они не могут.

Да никаких их не защитишь. Разорятся почти все со временем. Останется маленькая ниша ни на что не влияющая.


Сейчас тоже на словах делают вид, что защищают мелких предпринимателей. А тут же принимают законы по которым им становится еще хуже. А крупному бизнесу наоборот лучше.

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

Вы вперед немного посмотрите, Маркс еще в 19 обосновал почему в будущем наступит комунизм.


Банальный пример.

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

Информация

В рейтинге
Не участвует
Откуда
Ижевск, Удмуртия, Россия
Зарегистрирован
Активность