2013-04-12 13 views
5

Scuse in anticipo, questo è qualcosa che ho davvero pensato di poter trovare sul web, ma stavo avendo problemi.

In Python, nella parte dell'intestazione, vedo che a volte la gente avvolge i loro valori letterali con un segno di dollaro ($). Sembra, a giudicare dagli esempi, che questo è un puntatore per inserire informazioni che vengono automaticamente aggiornate (magari tramite il controllo del codice sorgente?), Ma non capisco come funzioni.

Ad esempio:

__version__ = '$Revision: 4799 $'.split()[1] 
__date__ = '$Date: 2006-09-25 11:09:02 -0400 (Mon, 25 Sep 2006) $'.split()[1] 
__author__ = 'John Doe FIX: put in the authors name' 

è un esempio che ho trovato su (Python Example Documentation Template). Quindi il $ è avvolto attorno alla versione (che cambierà nel tempo), e la data (che cambierà anche). Supponendo che sia una sorta di puntatore per acquisire sempre informazioni aggiornate riguardanti la versione, la data, ecc., Qualcuno può indicarmi come funziona? Quale software di controllo del codice sorgente utilizza questa sintassi? È lo stesso in tutte le lingue?

Grazie!

risposta

3

Questo non è specifico per Python, è qualcosa usato dai sistemi di controllo del codice sorgente, che risalgono a RCS e CVS.

Vedere CVS Keywords per un elenco della sintassi CVS. Mentre poche persone usano CVS al giorno d'oggi, molte delle persone del sistema di controllo sorgente do usano (in particolare, sovversione) gestiscono la sintassi CVS o una leggera variazione di esso. (E alcune persone creano anche script di compilazione che eseguono sostituzioni simili in fase di compilazione anziché un'ora di registrazione.)

+0

Grazie mille! Pensavo fosse qualcosa di simile, ma non ho trovato nulla per confermare quello che hai detto. Grazie per il link. –

2

Questo è il risultato di subversion's keyword substitution (originariamente CVS). Sì, funziona con tutti i file, non solo con il codice sorgente Python.

+0

Ciao Pavel, grazie mille! In realtà volevo dire che entrambi i tuoi e di Abarnet erano "corretti", ma immagino che StackExchange non mi permetta di scegliere 2 risposte corrette. –

1

Si chiama "sostituzione parole chiave" e le varianti di questa idea sono implementate in un numero di sistemi di controllo versione, come RCS, CVS e Subversion. Detto questo, ora puoi facilmente cercare nel web i dettagli.

1

Non è specifico per Python.

Alcuni sistemi di controllo versione (RCS, CVS e SVN almeno) inseriscono automaticamente il numero di revisione e l'ultima data di modifica del file con tali variabili speciali.