-
Самый главный вопрос про длину строки - по стайлгайду она не должна быть больше 79 символов (а рекомендуется - 72). На практике приходится нарушать это требование, особенно когда используются строки для вывода пользователю и кажется, что более длинная строка будет выглядеть красивее, нежели две короткие и "по-стандарту".
Особенно это характерно для моделей в джанго - не хватает совсем немного места, причем в каждой строчке. Если переносить - получается ужасная гребенка (если вторую строку отодвигать на 4 пробела) и месиво, без переносов - более удобное расположение "почти в столбик".
-
PEP8:
But most importantly: know when to be inconsistent — sometimes the style guide just doesn't apply. When in doubt, use your best judgment. Look at other examples and decide what looks best.
Дзен Питона:
- Readability counts.
То есть, если следуя букве правил, получается криво — отступайте от правил.
-
Я, например, для повышения читаемости иногда пренебрегаю правилом не выравнивать присвоения (и др.) пробелами:
class BuildList(models.Model): name = models.CharField(max_length=100) status = models.CharField(max_length=250) blocked = models.BooleanField(default=False) recursive = models.BooleanField(default=False) start_time = models.DateTimeField(auto_now_add=True) last_time = models.DateTimeField(auto_now=True) project = models.ForeignKey(Project) urlpatterns = patterns('', (r'^login/$', 'django.contrib.auth.views.login'), (r'^logout/$', 'django.contrib.auth.views.logout'), (r'^products/$', 'django.views.generic.simple.redirect_to', {'url': '/'}), )А вы?
-
А я не пользуюсь 4-мя пробелами вместо нормальной табуляции.
-
Ну, это дело вкуса :) PEP же их ненавязывает
-
Почти навязывают, настоятельно рекомендуют.
-
А я не пользуюсь 4-мя пробелами вместо нормальной табуляции.
Когда пилишь чужой исходник, хочется стандарта, а несовпадуха пробелов и табов всё портит. Можно, конечно, попробовать всех перевести на табы и только на табы, но практика использования текстовых редакторов показывает, что такого не будет никогда.
-
Прогнал последний проект через pylint:
Your code has been rated at 3.23/10
В основном line is too long и нет пробела после запятой
ничего страшного в этом не вижу
можно прикрутить pylint к редактору и он будет подчеркивать что не так, но что-то не хочется. а вот pyflakes прикрученный к редактору(через pyflakes.vim) очень спасает от глупых ошибок, опечаток -
В основном line is too long и нет пробела после запятой
ничего страшного в этом не вижу
Ага, страшное увидят те, кто будут читать ваш код :)
-
о бесчеловечности pylint'a можно слагать легенды, лично я был сражен когда увидел warnings а ля "too many public methods" :)
-
был сражен когда увидел warnings а ля "too many public methods"
У вас никогда после выполнения dir с модулем не возникало подозрения, что что-то не так? Ну, например, сложно за минуту понять, от кого выполнять
__doc__, или ещё что-то подобное?.. Куча паблик-методов - это же в реальной жизни приговор документированию. -
Я уже точно не помню контекста, в котором возникло это предупреждение, по моему в моем классе методов было немного, а вот в суперклассе видимо был перебор. Нелепость ошибки в том, что суперкласс был из сторонней библиотеки.
-
суперкласс был из сторонней библиотеки.
...автор которой, видимо, тоже был возмущён бесчеловечностью pylint'a :)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.





