Джейкоб Холлен однажды заметил, что лучший стиль Python следует за Tufte отказом от украшения (хотя поле Tufte - не языки программирования, а визуальное отображение информации): не тратьте «чернила» (пиксели) ) или "бумага" (пространство) для простого украшения.
Из этого принципа вытекает многое: без лишних скобок, без точек с запятой, без глупых «блоков ascii» в комментариях и строках документов, без лишних пробелов для «выравнивания» вещей в разных строках, одинарных кавычек, если только вам не нужны двойные кавычки, нет \ продолжать строки, кроме случаев, когда это обязательно, без комментариев, которые просто напоминают читателю о правилах языка (если он все равно не знает язык, на котором у вас проблемы ;-) и т. д.
Я должен отметить, что некоторые из этих последствий "духа Python Tufte" более противоречивы, чем другие, в сообществе Python. Но язык, безусловно, уважает «Дух Туфте» довольно хорошо ...
Переход к «более спорным» (но санкционирована дзен Python - import this
в качестве переводчика строки): «плоский лучше, чем вложенный», так что «выйти, как только разумный», а не гнездятся. Позвольте мне объяснить:
if foo:
return bar
else:
baz = fie(fum)
return baz + blab
это не страшно, но и не оптимально: так как «return» «вылезает», вы можете сохранить вложение:
if foo:
return bar
baz = fie(fum)
return baz + blab
Более точный пример:
for item in container:
if interesting(item):
dothis(item)
dothat(item)
theother(item)
что большой блок с двойным вложением не является аккуратным ... рассмотрим более плоский стиль:
for item in container:
if not interesting(item):
continue
dothis(item)
dothat(item)
theother(item)
Кстати, и, кроме того, это не совсем Python-эксклюзивный стиль - одна из моих любимых мозолей (на любом языке, но в Python Tufte's Spirit меня поддерживает; -):
if not something:
this()
that()
theother()
else:
blih()
bluh()
blah()
"если нет ... иначе" искажено ! Поменяйте местами две половинки и потеряйте not
:
if something:
blih()
bluh()
blah()
else:
this()
that()
theother()