- 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
guest # 0
Нужно конструкторы предков вызвать, и все поля вручную проставить.
Кажется, потому датаклассы и завезли, не?
>self.text: str =
>self.category_id
обожаю это говно
где-то пишем тип, где-то не пишем...
gost # 0 ⇈
Это неявная типизация же, тип выводится из типа аргумента коньструктора. Хотя с text и description проёб, да.
Ну, знаешь, как сначала делают везде обязательные явные типы, лет десять-двадцать их кушают, а потом изобретают var/let/val/auto.
Правда, я гаедлайны по питоновской типизации не читал, так что хз.
MAKAKA # 0 ⇈
угу. Но у тебя еще не самый адский вариант, я видал код, где часть параметров даже не выводится.
А у тебя VSCode умеет эти аннотации парсить, и делать кодинсайт? Пайшарм вот умеет.
Вывод типов это всё таки другое: там статическая типизация обязательна, просто ее можно посчитать. А в питоне ж нет.
>гаедлайны
Хуй знает, где есть такие. Я бы почитал. Пока что кажется, что в публичном API лучше всегда указывать типы, а в скриптушне для себя -- нет
gost # 0 ⇈
Разумеется, там и официальные расширения (от «Майкрософта») для этого есть, и ещё куча разных. Я использую стандартный «mypy», он довольно качественно работает. «Pyright» не понравился, какие-то траблы были, а вот сейчас активно развивается «Pylance» — надо бы глянуть как-нибудь.
> а в скриптушне для себя -- нет
Я и в скриптушне добавляю. Периодически отлавливаю разные глупые очепятки. А вообще стараюсь делать так, чтобы у каждой пельменной «mypy» хотя бы выводил тип.
MAKAKA # 0 ⇈
Мне просто сказалось, что mypy делался не для ide, а для валидации кода потом, как линтер
>Я и в скриптушне добавляю.
Может, пора на typescript?
gost # 0 ⇈
> Мне просто сказалось, что mypy делался не для ide, а для валидации кода потом, как линтер
Ну, ЕМНИП, оно так и есть, только в «VSCode» его прикрутили динамически.
> Может, пора на typescript?
Не, воздержусь.
MAKAKA # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
А если серьёзно, то у путуха чуть более сложный деплой: надо «gunicorn» ставить, юниты создавать, все дела.
MAKAKA # 0 ⇈
Ты можешь использовать mod_python, и будет тоже самое что и с пыхокалом.
А если в пыхокале ты будешь использовать fcgi_fpm то его тоже надо ставить, и юниты создавать
guest # 0 ⇈
gost # 0 ⇈
Любопытно, не слышал про такое извращение.
> Я не понял, причем тут язык.
Скорее, не язык, а сложившаяся практика его применения.
MAKAKA # 0 ⇈
Есть еще mod_wsgi, кажется он депрейетнул mod_python.
>практика
Это правда
Хотя про запуск пыха в отдельном процессе и связывании его по fast cgi даже Конардо говорил
guest # 0 ⇈
MAKAKA # 0 ⇈
Правда, это в больших проектах конечно
>я беру «C++».
ты сравнил) есть же всякие золотые середины типа kotlin, правда нужно жвм иметь
gost # 0 ⇈
Подтверждаю. Для мелких проектов вроде «NGK» это несколько излишне (хотя наш инженерный отдел уже давно хочет прикрутить эту тему, хотя бы для общего развития). А сейчас наши путухоновские проекты деплоятся как в этой статье: https://habr.com/post/512550/ (только без шкриптов и ЙАЖИ).
MAKAKA # 0 ⇈
А в другом петпроекте делается тоже самое, но удаленно: там используется fabric, и запускать его нужно на своей машине, по историческим причинам.
softpawww # 0 ⇈
Ага. А потом засирают этими var/let/val/auto код настолько, что чтобы его понять, приходится вводить обязательные гайдлайны на уровне проекта, где описывать кейсы, когда эти самые var/let/val/auto нужно применять, а когда — лучше написать просто int.
gost # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
Читаешь ревью в браузере. Грузить ветку в IDE то не особо удобно.
Desktop # 0 ⇈
Desktop # 0 ⇈
Я забыл, что сишники и крестовики скилловые и думают про переполнения
bormand # 0 ⇈
С более сложными типами обычно всё более-менее очевидно по имени функции или по полям которые оттуда достают. Но если там несколько похожих типов - приходится лезть в описание опять же.
З.Ы. Ну и если первый раз этот код видишь и с типами которые там юзаются ещё не знаком, auto сильно затрудняет понимание.
Desktop # 0 ⇈
guest # 0 ⇈
Если я не могу без IDE понять тип выражения, то может нахуй оно?
Desktop # 0 ⇈
guest # 0 ⇈