A che punto dovresti iniziare a mettere le funzioni in un nuovo file? [chiuso]

0

Attualmente sto scrivendo uno script python. Attualmente è lungo circa 400 righe, e sembra che stia diventando un po 'lungo, come quando sto provando a scorrerlo con eclissi ci vuole un po' per passare dalla funzione A alla funzione B. La struttura è quella che legge in un file, quindi esegue azioni su ciò che legge in base ai flag inviati dall'utente sulla riga di comando. Tutto è più o meno correlato (e in effetti molte funzioni chiamano su altre funzioni), quindi ha senso a questo proposito lasciare tutto nello stesso file.

Attualmente sto aggiungendo più funzionalità, o più cose che possono essere inserite per i flag della riga di comando, e mi chiedo se ci siano degli standard su quanto tempo dovrebbe essere un file prima di iniziare a mettere le cose in un nuovo file . PEP 8 menziona la lunghezza di una linea ma nulla sulla lunghezza di un file.

In breve: ci sono degli standard per quanto tempo dovrebbe essere un file prima di iniziare a gettare cose in un nuovo file?

    
posta Mitch 05.09.2014 - 21:56
fonte

2 risposte

4

Non penso che dovresti rompere il copione solo per la lunghezza. Qualsiasi IDE decente dovrebbe avere la capacità di comprimere le funzioni e / o saltare a una funzione specifica. Ci deve essere una buona ragione logica per vedere una parte di essa come funzionalmente indipendente dagli altri. Ad esempio, se la funzione o le funzioni per leggere un file sono abbastanza generiche, potrebbe essere opportuno suddividerle in un modulo separato (file) che viene quindi importato. In questo modo puoi riutilizzare il modulo di lettura dei file in un programma completamente diverso in un secondo momento, o fare dei test unitari solo per il modulo di lettura dei file, ecc. In generale, direi che dovrebbero essere applicate le seguenti condizioni:

  1. Il modulo ha alcune sottofunzioni logiche separate che sta facendo.
  2. Il modulo non ha bisogno di sapere nulla sullo script che lo sta chiamando (che non viene passato come parametri di funzione).

Ad esempio, il modulo non dovrebbe controllare alcune variabili globali che vengono impostate nell'altro script, o in un altro modulo, o qualcosa del genere.

    
risposta data 05.09.2014 - 22:42
fonte
0

Suddividendo il codice su file separati stai creando moduli . I moduli ti aiutano a rompere il tuo codice e mantenerlo gestibile e riutilizzabile. Dalla documentazione di python

If you quit from the Python interpreter and enter it again, the definitions you have made (functions and variables) are lost. Therefore, if you want to write a somewhat longer program, you are better off using a text editor to prepare the input for the interpreter and running it with that file as input instead. This is known as creating a script. As your program gets longer, you may want to split it into several files for easier maintenance. You may also want to use a handy function that you’ve written in several programs without copying its definition into each program.

To support this, Python has a way to put definitions in a file and use them in a script or in an interactive instance of the interpreter. Such a file is called a module; definitions from a module can be imported into other modules or into the main module (the collection of variables that you have access to in a script executed at the top level...).

Cerca di mantenere le interfacce tra i moduli piccoli in modo da non aggiungere complessità inutili al tuo programma (stai cercando di rimuovere la complessità usando i moduli). Guarda anche questa domanda Stack Overflow

    
risposta data 05.09.2014 - 22:21
fonte

Leggi altre domande sui tag