Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Отсутствие констант
модификаторов доступа
длинные простыни кода в одиночных файлах
мутная история с тайпхинтингом/типизацией
И по производительности и по «заточенности»
Не особо нужно
В других языках нельзя что ли простыню сделать?
В чем ее мутность?
В чем заточенность?
Большинство вещей, которые делаются в PHP на базовом уровне, в питоне делает фреймворк
Речь про то, что питон диктует так делать (проблема циклического импорта)
Да, обойтись можно без чего угодно. Однако практика показывает, что во всех зрелых языках они есть, ибо есть задачи которые константы решают. Если нет констант — нет для этих задач предназначенного инструмента.
И в том, что при запуске и в рантайме, питон не пикнет даже если будут несоответствие типов (частая проблема при использовании сторонних пакетов, где pypy не поможет ввиду отсутствия тайпхинтинга в этих самых сторонних пакетах ).
Речь про то, что питон диктует так делать (проблема циклического импорта) и устоявшаяся практика. Посмотрите на models.py в django любого сложного проекта.
В необходимости писать тип в виде строки вместо непосредственно литерала, если импортировать тип нельзя из-за проблемы циклического импорта.
Большинство вещей, которые делаются в PHP на базовом уровне, в питоне делает фреймворк.
И оно понятно, обработка http — это не целевая задача питона и делается сравнительно «сторонними» от ядра, средствами.
Отсутствие констант
модификаторов доступа
длинные простыни кода в одиночных файлах
мутная история с тайпхинтингом/типизацией
и многое другое
Невозможность приватных методов
попытка разбить на модули — к проблеме циклического импорта.
python avoid cyclic importИли что-то другое имеете ввиду?
protected. То есть при наследовании доступен, но недоступен при вызове снаружи. И не сокрытие видимости с помощью __ (кстати, тоже не выглядит элегантным), а именно ограничение доступа._some_method понимает, что это protected или __some_method — private и знает что на них полагаться нельзя.Отсутствие констант очень сильно мешает, особенно в легаси 2.7 версии. Доходит до того, что простая опечатка в сравнении приводит к изменению значения того, что меняться в принципе не должно.
а это реализуется кучей способов
Давайте рассмотрим возможные варианты.
- C#
- Java
- PHP
- JavaScript и Node.js
Go забыли. А он имеет в вебе довольно сильные позиции. Да и разрабатывался с учетом веб-применения.
Поигрались и потихоньку бросают в пользу более полноценных языков.
такую же производительность как го и нода
Что входит в базис для веб-разработки на Python
- ...
- Протоколы и API: в первую очередь http, JSON-RPC, Protocol Buffers, gRPC.
- ...
Python для Веба: что нужно знать джуниору, чтобы работать и развиваться