Kiedy Jacob Hallén zauważył, że najlepszy styl Pythona następuje po odrzuceniu dekoracji w stylu Tufte (chociaż pole Tufte'a nie jest językiem programowania, ale wizualnym wyświetlaniem informacji): nie marnuj "atramentu" (pikseli) ani "papieru" (przestrzeń) do zwykłej dekoracji.
Wiele wynika z tej zasady: bez zbędnych nawiasów, bez średników, bez głupich "pudełek ascii" w komentarzach i docstrujach, bez zmarnowanej przestrzeni do "wyrównania" rzeczy w różnych wierszach, pojedynczych cudzysłowów, chyba że potrzebujesz specjalnie podwójnych cytatów, no \, aby kontynuować linie, z wyjątkiem sytuacji, gdy są obowiązkowe, brak komentarzy, które jedynie przypominają czytelnikowi zasady języka (jeśli czytelnik nie zna języka, w którym i tak masz kłopoty ;-), i tak dalej.
Chciałbym zauważyć, że niektóre z tych konsekwencji "ducha Tufte Pythona" są bardziej kontrowersyjne niż inne, w społeczności Python. Ale język z pewnością szanuje "Ducha Tufte'a" całkiem dobrze ...
Przejście na "bardziej kontrowersyjne" (ale usankowane przez Zen Pythona - import this
w odpowiedzi na zapytanie tłumacza): "mieszkanie jest lepsze niż zagnieżdżone", więc "wynoś się tak szybko, jak rozsądnie", zamiast gniazdować.Pozwól mi wyjaśnić:
if foo:
return bar
else:
baz = fie(fum)
return baz + blab
to nie jest straszne, ale nie jest to optymalna: od „powrotu” `` ją na zewnątrz „”, można zapisać zagnieżdżania
if foo:
return bar
baz = fie(fum)
return baz + blab
ostrzejszy przykład :
for item in container:
if interesting(item):
dothis(item)
dothat(item)
theother(item)
że duży blok jest podwójnie zagnieżdżone nie jest miłe ... rozważyć płaski styl:
for item in container:
if not interesting(item):
continue
dothis(item)
dothat(item)
theother(item)
BTW, a na marginesie to nie specjalnie z Python-ekskluzywnym stylu - jeden z moich peeves domowych (w dowolnym języku, ale w Duchu Python Tufte wspiera mnie ;-):
if not something:
this()
that()
theother()
else:
blih()
bluh()
blah()
„czy nie. .. else "to wykrzywiony! Zamienić dwie połówki i stracić not
:
if something:
blih()
bluh()
blah()
else:
this()
that()
theother()
Miałem dokładnie to samo pytanie :) – Snehal
Zachowaj otwarty umysł ... Python z natury ma być czytelny ... będzie jasne przez zrozumienie niektórych pojęć takich jak krojenie, lambda, dekoratory itp. – Perpetualcoder