4.4.3 Oggetti Differ

Notate che le variazioni generate da Differ non fanno caso alle differenze minime. Al contrario, le differenze minime sono spesso contro intuitive, poiché si sincronizzano ovunque possibile, a volte corrispondono accidentalmente a 100 pagine di distanza. Restringere i punti di sincronizzazione alle corrispondenze contigue permette di mantenere un minimo senso dell'orientamento, al costo occasionale di produrre un diff più lungo.

La classe Differ ha questo costruttore:

class Differ( [linejunk[, charjunk]])
I parametri facoltativi di tipo keyword linejunk e charjunk servono per le funzioni filtro (o sono None):

linejunk: Una funzione che accetta una singola stringa come argomento e restituisce vero se la stringa è spazzatura. Il valore predefinito è None, ad indicare che nessuna riga viene considerata spazzatura.

charjunk: Una funzione che accetta un singolo carattere come argomento (una stringa di lunghezza 1) e restituisce vero se il carattere è spazzatura. Il valore predefinito è None, ad indicare che nessun carattere viene considerato spazzatura.

Gli oggetti di tipo Differ vengono utilizzati (generati da variazioni) tramite un singolo metodo:

compare( a, b)
Confronta due sequenze di righe e genera la variazione (una sequenza di righe).

Ogni sequenza deve contenere una stringa individuale di una sola riga, terminata da un fine riga. Queste sequenze possono essere ottenute dal metodo readlines() da oggetti di tipo file. La variazione generata inoltre consiste di stringhe terminate da dei caratteri di fine riga, pronte per venire stampate così come sono dal metodo writelines() di un oggetto di tipo file.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.