diff options
Diffstat (limited to 'content/digarden/pages/20210409071146-python.org')
-rw-r--r-- | content/digarden/pages/20210409071146-python.org | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/content/digarden/pages/20210409071146-python.org b/content/digarden/pages/20210409071146-python.org deleted file mode 100644 index f90f3ed..0000000 --- a/content/digarden/pages/20210409071146-python.org +++ /dev/null @@ -1,125 +0,0 @@ -:PROPERTIES: -:ID: 2d40c870-3ea1-4065-a982-a1db1a5a69d6 -:END: -#+title: Python - -* Python -Высокоуровневый язык программирования, применяемый для широкого спектра -задач. Достаточно убог сам по себе, но исторически очень распространён (возможно -из-за влияния корпораций в частности Google). Python неплох относительно другого -мейнстрима. - -Два основных фреймворка для web: -- [[id:8ec304b0-7981-4f0a-a6ed-7b7ee27cb9d2][Django]] -- [[id:0fb97d24-aa68-43ef-ad97-731af80bcbe1][Flask]] - -Ключевые слова: -- and -- as -- assert -- async -- await -- break -- class -- continue -- def -- del -- elif -- else -- except -- False -- finally -- for -- from -- global -- if -- import -- in -- is -- lambda -- None -- nonlocal -- not -- or -- pass -- raise -- return -- True -- try -- while -- with -- yield - -Интерфейсы в Python: -- Абстрактные классы с использованием @abstractMethod -- Протоколы из MyPy - -Ультимативная справка по языку: -https://gto76.github.io/python-cheatsheet/ - -https://python.org/ - -[[https://python-patterns.guide][Паттерны Python]] - -Профилирование и дебаг: -- Objgraph - Рисует графы, созданных объектов -- Pympler - Показывает сколько памяти едят те или иные объекты -- Mprof - Рисует график потребления памяти с течением времени - -[[https://stackoverflow.com/questions/1113611/what-does-ruby-have-that-python-doesnt-and-vice-versa][Отличия Python и Ruby]] - -Преимущества Python: -- Есть работа -- Маленький язык (не так много лексем, 1.2 миллионов строк кода на си, openjdk например около 20) -- Хоть какая-то интерактивная разработка и интроспекция -- Есть doc-string - -Недостатки Python: -- Байткод никак не оптимизируется -- Boolean это числа -1, 0 и 1 -- Нет Multiple Dispatch (https://github.com/mrocklin/multipledispatch) - ([[https://towardsdatascience.com/the-correct-way-to-overload-functions-in-python-b11b50ca7336][Как перегружать функции в Python]]) -- Нет модификаторов доступа -- Нет интерфейсов -- Нет встроенной проверки типов -- Нет стандарта -- Низкая производительность -- Отсутствует jar / phar -- GIL -- Слишком сильно отличающийся синтаксис по сравнению с C / C++ / Java -- Множественное наследование -- Плохая поддержка функциональной парадигмы -- Замыкание реализовано через ООП костыль -- Неявные сокращения в стандартной библиотеке -- Нарушение совместимости (Python 2 => Python 3) -- Слишком много пакетных менеджеров -- Нет switch-case -- Не настолько сильно переносим на другие системы как Java (особенно под - Windows) -- В документации не пишет полную API функций (например не пишет какие - типы она конкретно принимает и возвращает), но это решается нынче - аннотациями типов для стандартной библиотеки. -- 4 способа отформатировать строку -- List comprehensions сложные для чтения (фп подход был бы понятнее) -- Отсутствует Let -- Есть None - -https://wiki.python.org/moin/PythonWarts - -[[https://airbrake.io/blog/python/class-hierarchy][Иерархия ошибок]] - -Видео: -- [[https://www.youtube.com/watch?v=D0vbuIDOV4c][«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС]] - -Книги: -- От лутца - - -Веб-сайты: -- https://python-scripts.com -- https://devguide.python.org/ - -https://i.stack.imgur.com/Ty2F3.png
\ No newline at end of file |