Perché Python non stabilisce solo un formato per la dichiarazione delle larghezze delle tabulazioni?

0

Ho letto le guerre di fiamma sull'uso di spazi e schede. Quando si lavora con qualsiasi linguaggio di marcatura (quando lo scope non è molto importante e quando si preme 4 volte lo spazio è un PITA), tendo a minimizzare la larghezza della tabulazione solo a uno spazio o due, ma cambio fluidamente in quattro schede complete per il mio altro lavoro di programmazione.

È una questione di comodità il più delle volte e si traduce solo in errori reali durante la condivisione o il missaggio del codice. Quindi, perché non dichiarano semplicemente un formato per le sostituzioni opzionali come #tab = 2 all'inizio di un file? Non ci sarebbero problemi di scoping e potrebbero essere gestiti con 2 linee di codice.

Aggiornamento

Whoa, non mi sono spiegato molto chiaramente: utilizzo solo editor che gestiscono automaticamente la conversione tab / space. L'unico punto cogente che riesco a capire nelle critiche che ho letto riguardo all'uso di spazi bianchi da parte di Python è il modo in cui la convenzione spazio / tabulazione diviene quando si condivide il codice.

Forse la mia confusione sull'uso di "4 spazi" è dovuta alla mia vita precedente nel settore dell'editoria e al nostro uso delle schede non come un'unità di spazio bianco ma come un elemento astratto usato per descrivere la struttura di un documento, non il display. Sostituirlo con 4 spazi ha più a che fare con la shitty 8-space convention di Unix che con l'eleganza. Se Python standardizzasse l'utilizzo delle schede di default elimineremmo il livello di astrazione (letterale spazi - > scheda astratta ) che si perde quando lasciamo l'IDE e andiamo a Usenet / chat / posta elettronica. Ho pensato che #tab=2 sarebbe stato un buon modo per garantire che eventuali differenze originate a causa della formattazione della convenienza non mandassero altrove le cose.

    
posta Indolering 04.10.2013 - 22:21
fonte

2 risposte

4

Python ha stabilito un formato: Usa spazi.

Citando Python Styleguide (PEP 8) :

Spaces are the preferred indentation method.

Tabs should be used solely to remain consistent with code that is already indented with tabs.

Python 3 disallows mixing the use of tabs and spaces for indentation.

Python 2 code indented with a mixture of tabs and spaces should be converted to using spaces exclusively.

Qualsiasi editor di testo decente ti consente di configurare come gestire le schede, inclusa la conversione di tutte le schede in un numero fisso di spazi. Ho Sublime Text configurato su 4 spazi, la dimensione dell'indentazione PEP 8 raccomandata :

Use 4 spaces per indentation level.

    
risposta data 04.10.2013 - 23:02
fonte
2

La maggior parte dei problemi che stai descrivendo riguardano gli editor di testo, non il linguaggio stesso.

Per cominciare, chi sai che sta colpendo la barra spaziatrice 4 volte? Ogni editor che ho è configurato per inserire 4 spazi quando premi il tasto tab. Questa è una procedura molto standard. A meno che non si utilizzi Blocco note, il problema è che è necessario riconfigurare l'ambiente di sviluppo.

In secondo luogo, perché stai "condividendo e mescolando il codice" in un modo che implica che tutto stia accadendo all'interno di un file? E in che modo una macro al inizio del file cambia qualcosa?

Alla fine della giornata, la pratica standard consiste nell'utilizzare 4 spazi come una scheda in Python. Usalo, abituartici e punisci severamente chiunque si allontani da esso.

    
risposta data 04.10.2013 - 23:02
fonte

Leggi altre domande sui tag