- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
def __init__(self, text: str, description: str, category_id: int, auth_cookie: str) -> None:
Form.__init__(self)
CsrfForm.__init__(self)
CaptchaForm.__init__(self)
self.text: str = text
self.description: str = description
self.category_id = category_id
self.auth_cookie = auth_cookie
guest8 29.07.2020 02:11 # −999
gost 29.07.2020 02:47 # 0
Это неявная типизация же, тип выводится из типа аргумента коньструктора. Хотя с text и description проёб, да.
Ну, знаешь, как сначала делают везде обязательные явные типы, лет десять-двадцать их кушают, а потом изобретают var/let/val/auto.
Правда, я гаедлайны по питоновской типизации не читал, так что хз.
MAKAKA 29.07.2020 02:54 # 0
угу. Но у тебя еще не самый адский вариант, я видал код, где часть параметров даже не выводится.
А у тебя VSCode умеет эти аннотации парсить, и делать кодинсайт? Пайшарм вот умеет.
Вывод типов это всё таки другое: там статическая типизация обязательна, просто ее можно посчитать. А в питоне ж нет.
>гаедлайны
Хуй знает, где есть такие. Я бы почитал. Пока что кажется, что в публичном API лучше всегда указывать типы, а в скриптушне для себя -- нет
gost 29.07.2020 03:32 # 0
Разумеется, там и официальные расширения (от «Майкрософта») для этого есть, и ещё куча разных. Я использую стандартный «mypy», он довольно качественно работает. «Pyright» не понравился, какие-то траблы были, а вот сейчас активно развивается «Pylance» — надо бы глянуть как-нибудь.
> а в скриптушне для себя -- нет
Я и в скриптушне добавляю. Периодически отлавливаю разные глупые очепятки. А вообще стараюсь делать так, чтобы у каждой пельменной «mypy» хотя бы выводил тип.
MAKAKA 29.07.2020 03:44 # 0
Мне просто сказалось, что mypy делался не для ide, а для валидации кода потом, как линтер
>Я и в скриптушне добавляю.
Может, пора на typescript?
gost 29.07.2020 04:10 # 0
> Мне просто сказалось, что mypy делался не для ide, а для валидации кода потом, как линтер
Ну, ЕМНИП, оно так и есть, только в «VSCode» его прикрутили динамически.
> Может, пора на typescript?
Не, воздержусь.
MAKAKA 29.07.2020 16:26 # 0
gost 29.07.2020 16:33 # 0
guest8 29.07.2020 16:35 # −999
gost 29.07.2020 16:38 # 0
А если серьёзно, то у путуха чуть более сложный деплой: надо «gunicorn» ставить, юниты создавать, все дела.
MAKAKA 29.07.2020 16:40 # 0
Ты можешь использовать mod_python, и будет тоже самое что и с пыхокалом.
А если в пыхокале ты будешь использовать fcgi_fpm то его тоже надо ставить, и юниты создавать
guest8 29.07.2020 16:41 # −999
gost 29.07.2020 16:42 # 0
Любопытно, не слышал про такое извращение.
> Я не понял, причем тут язык.
Скорее, не язык, а сложившаяся практика его применения.
MAKAKA 29.07.2020 16:44 # 0
Есть еще mod_wsgi, кажется он депрейетнул mod_python.
>практика
Это правда
Хотя про запуск пыха в отдельном процессе и связывании его по fast cgi даже Конардо говорил
guest8 29.07.2020 16:41 # −999
MAKAKA 29.07.2020 16:37 # 0
Правда, это в больших проектах конечно
>я беру «C++».
ты сравнил) есть же всякие золотые середины типа kotlin, правда нужно жвм иметь
gost 29.07.2020 16:41 # 0
Подтверждаю. Для мелких проектов вроде «NGK» это несколько излишне (хотя наш инженерный отдел уже давно хочет прикрутить эту тему, хотя бы для общего развития). А сейчас наши путухоновские проекты деплоятся как в этой статье: https://habr.com/post/512550/ (только без шкриптов и ЙАЖИ).
MAKAKA 29.07.2020 16:49 # 0
А в другом петпроекте делается тоже самое, но удаленно: там используется fabric, и запускать его нужно на своей машине, по историческим причинам.
softpawww 29.07.2020 16:45 # 0
Ага. А потом засирают этими var/let/val/auto код настолько, что чтобы его понять, приходится вводить обязательные гайдлайны на уровне проекта, где описывать кейсы, когда эти самые var/let/val/auto нужно применять, а когда — лучше написать просто int.
gost 29.07.2020 16:47 # 0
Desktop 29.07.2020 16:49 # 0
bormand 29.07.2020 16:53 # 0
Читаешь ревью в браузере. Грузить ветку в IDE то не особо удобно.
Desktop 29.07.2020 16:56 # 0
Desktop 29.07.2020 17:05 # 0
Я забыл, что сишники и крестовики скилловые и думают про переполнения
bormand 29.07.2020 17:10 # 0
С более сложными типами обычно всё более-менее очевидно по имени функции или по полям которые оттуда достают. Но если там несколько похожих типов - приходится лезть в описание опять же.
З.Ы. Ну и если первый раз этот код видишь и с типами которые там юзаются ещё не знаком, auto сильно затрудняет понимание.
Desktop 29.07.2020 17:18 # 0
guest8 29.07.2020 16:56 # −999
Desktop 29.07.2020 17:03 # 0
guest8 29.07.2020 16:51 # −999