No a to je ešte horšie než end... pretože si pak nemôžem uživateľsky prispôsobiť formátovanie kódu. A okrem toho čo je odsadenie? pojem jasnej, ale z pohladu súboru to niekde sú 2 medzery, niekde 4 medzery, niekde tab, niekde inde zas neco jiného. A najmä miešať kombinácie odsadenia je niečo čo si koleduje o problém, a zas ak by sa nemiešali, no neviem jak by sis zarovnal pod sebe zložitejšie kódy, trebárs už u parametrov funkcií musí to byť docela problém, mať tie parametre rozpísané na viac riadkov. Ak to i samotný jazyk / kompilér vie zhltnúť ok, ale čo uživateľ. Jak rozozná čo je odsadenie/zarovnanie a čo ukončenie nejakého bloku kódu.... proste to je chaos.
V Pythonu je formátování kódu součástí syntaxe, stejně jako u formátu YAML. Prostě si na to zvykni nebo používej jiný jazyk. V rámci jednoho bloku smí být odsazení jen jednoho typu - doporučuje se však používat důsledně 4 mezery. Nebudeš mít problémy při práci v týmu. U formálních parametrů si odsazování hlídat nemusíš, tam jsou podstatné čárky a uzavírací závorka.
príklad z wikipedie:
def qsort(L):
if L == []:
return []
pivot = L[0]
return (qsort([x for x in L[1:] if x < pivot]) +
[pivot] +
qsort([x for x in L[1:] if x >= pivot]))
len pár riadkov kódu a už mi trvá dobrú sekundu zistiť ťo posledné 3 riadky vlastne predstavujú, a čo všetko pod return patrí. A když by za tím pokračoval kód (teda kdby to nebyl return), a kdyby toho kódu bolo 100 riadkov, tak som totálne z toho... by mi proste trvalo niekoľko sekúnd len pochopiť čo pod čo patrí.
Quicksort asi programovat nebudeš - nemá to praktický význam. Kromě toho je ten příklad blbě. Po troše zkušeností zjistíš, že binární operátor na konci bude znamenat na následujícím řádku, podobně jako neuzavřená závorka. Nejsem však příznivcem zalamování, totéž se dá zapsat i bez něho:
def qsort(L):
if L == []:
return []
pivot = L[0]
left = qsort([x for x in L[1:] if x < pivot])
right = qsort([x for x in L[1:] if x >= pivot])
return left + [pivot] + right
Sice je to stále blbě, ale už je to bez zalamování.