Vyznat se v nějaké smyčce v Pythonu, kde je více podsmyček, více podmínek, vyskakování pomocí breaků - to je peklo pro oči. :-(
Souhlas, od toho je potřeba takové špagety rozdělovat do krátkých vhodně pojmenovaných metod. Obvykle není důvod míchat různé úrovně abstrakce do jedné metody.
Ale je mi jasné, že s cizím kódem nic neuděláš...
Odsazování mi u pythonu až tak nevadí. Je pravda, že někdy při kopírování do vimu dochází k přidávání mezer na novém řádku a to pythonní kód zlikviduje. Narozdíl od bloků vymezených závorkami, kde informace zůstala zachována a stačí zavolat automatické přeformátování.
Mně na pythonu zásadně vadí chybějící typy parametrů metod. Čtení cizího kódu je silně nepřehledné, protože nikdy nevím, co do metody vstupuje za typy, zda metoda něco vrací, jaký datový typ. V pythonu 2 je peklo s textovými typy - vyleze z knihovny bytes, string nebo unicode? Z os funkcí leze bytes, z xml funkcí rovnou unicode string, z něčeho neunicode string. Dokud si to člověk nespustí (třeba v testu, to je jedno), neví, jak to dopadne. Musí zkoušet různé řetězce, zda mu to nepadne na unicode znaku. A konverze z python2 do 3 není právě z těchto důvodů nijak jednoduchá, i když jsou na to nástroje. Do googlu musí člověk vždy zadávat, který python má na mysli, rozsáhlých projektů jen pro python2 je pořád spoustu a žijí dál (pro mě např.
https://github.com/mopidy/mopidy ).
Typehinty v projektech skoro nikdo nepoužívá (ani v nových pro python3), stačí se podívat na github...
Zrovna včera jsem v PyCharmu řešil přejmenování fieldu třídy - v půlce výskytů to dal, druhou půlku nenašel, protože byl ve starším kódu, který ještě nepoužíval type hinty. A vůbec se mu nedivím, to by musel být kouzelník. Takhle pro mě nevypadá příjemné programování...
Python má krásné konstrukce, je příjemně stručný, jednoduché/jednorázové věci jsou v něm rychle hotové (asi proto se tolik používá pro prototyping a výzkum), ale chybějící uvedené typy a schizma mezi verzemi mu u mě hodně škodí. Ve svém kódu důsledně používám typehinty, abstraktní třídy (abc), generika (Generic), ale python ve svých domácích projektech používám kvůli dostupnosti knihoven pro vše možné a tam je to vždy otravný pokus/omyl.