Pull to refresh
26
0
Евгений Степанов @estepanov_coder

Чистый кот

Send message

Сплошной копипаст с этой статьи 19 года

Ну и под конец важные выводы:

В этом пункте куда-то пропали нижние подчёркивания. Особенно это сбивает с толку когда смотришь на class, а должно быть __class__

Атрибут slots не работает для классов, наследованных, от встроенных типов переменной длины, таких как intbytes и tuple.

Вообще-то пустой __slots__ будет работать:

class A(int): __slots__ = ()

Видимо, при копировании с документации, вы забыли слово Nonempty.

Ну и под конец важные выводы:

Атрибут slots не работает для классов, наследованных, от встроенных типов переменной длины, таких как intbytes и tuple.

Вывод подводит итог того, о чём до этого говорилось. Что-то не найду момента в статье (до вывода), где говорилось бы про наследование класса от встроенных типов переменной длины. Если уж копируете с документации, то так и пишите «Примечания по использованию слотов» («Notes on using slots»)

Зависит от выбранных правил при написании кода. Если вы пишите один, то сами выбираете длину строк (я следую PEP8, поэтому для меня это 79). Если пишите в команде, то тимлид или руководитель должен выбирать правила, которые будет соблюдать вся команда. В том числе и длину строк.

На счет pylint и flake, если не ошибаюсь, можно настроить макимальную длину. Либо на крайний случай сделать --disable=<код_ошибки> и ошибка не будет появляться.

Обычно такие тонкости как длина строк - дело вкуса, поэтому можно встретить как 79, так и 120 символов на одной строке.

# settings.PAGE_SIZE может иметь значение разных типов, например str и int 

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

page_size: int = settings.PAGE_SIZE

С помощью int мы показываем что ожидаем именно этот тип, хотя если убрать type hint, то можно ждать int, str или что-то ещё

Python – хороший первый язык программирования, а это лучшая книга для его изучения.

Такая же фраза была в этой статье. В итоге какая книга "лучшая"?)

Согласен на счет "Укуса питона". 200 страниц, кратко и без воды. А вот про Лутца не соглашусь, имхо очень много воды, страниц 200 прочитал и дальше стало не интересно.

Ого, впервые такую запись вижу. Спасибо

Да, я и не говорю что вы не правы. Просто сказал как у меня было, может у кого-то еще также

Согласен. Но как и "Тонна в килограммах", так и "Минута в секундах" звучат на мой взгляд понятно. Т.е. "сколько будет одна тонна в килограммах" и "сколько будет одна минута в секундах"

Как-то до этого не додумался. Спасибо.

у IDE будет возможность побурчать.

И сам программист, пожалуй, поймет что делает что-то не то)

Тогда уж лучше оставить имя функции как есть, чтобы при её поиске не приходилось бегать по всем t в коде.

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

длинные имена переменных без IDE не удобно писать

Мне кажется сейчас абсолютно все пишут с помощью IDE.

В остальном согласен, длинные имена тоже не всегда хорошо, но если выбор между "коротким и непонятным" и "длинным и понятным", то лично я выберу второе. Как вы и сказали, это личное дело программиста. Так что тут каждому свое.

IDE предложила не то, а ты не до конца прочитал что она предложила

Кстати в такой ситуации может помочь TDD.

В первых лаборатнорных переменные обычно именуются как-то так: a, b, c, var, list, value.

MIN_IN_SECONDS - минута в секундах. Также как вес в килограммах WEIGHT_IN_KILOGRAMS

Я всегда, как и многие другие люди, представлял себе офис крупных компаний обычным местом без какого либо креатива и разнообразия

Хм, у меня всегда максимально противоположное представление было. Примерно такое как в статье.

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Middle
Python
Django
PostgreSQL
Docker
Linux
Git
JavaScript
JQuery
Flask
Selenium