Ricopro il mio vecchio codice e desidero modificare i nomi delle funzioni in accordo con pep8. Ma voglio mantenere la compatibilità con le vecchie parti del sistema (un refactoring completo del progetto è impossibile perché i nomi delle funzioni fanno parte dell'API e alcuni utenti usano il vecchio codice client).Ridenominazione delle funzioni con conservazione della retrocompatibilità
Esempio semplice, vecchio codice:
def helloFunc(name):
print 'hello %s' % name
Nuovo:
def hello_func(name):
print 'hello %s' % name
Ma entrambe le funzioni dovrebbero funzionare:
>>hello_func('Alex')
>>'hello Alex'
>>helloFunc('Alf')
>>'hello Alf'
sto pensando:
def helloFunc(name):
hello_func(name)
, ma non mi piace (nel progetto circa 50 funzioni, e sarà un po 'disordinato, penso).
Qual è il modo migliore per farlo (esclusa la duplicazione di origine)? È possibile la creazione di un decoratore universale?
Grazie.
Oh, come potrei dimenticarlo! Grazie! – vlad
@vlad - Ho aggiunto una funzione che penso aggiungerà automaticamente 'function_with_underscores' dal modulo' modinput' a 'modadd' come' functionWithUnderscores' (ma non funzionerà con le funzioni 'lambda' in quanto non hanno nome ispezionabile (AFAIK) – mgilson