Je refactorise mon ancien code et je veux changer les noms des fonctions en accord avec pep8. Mais je veux maintenir la rétrocompatibilité avec les anciennes parties du système (un remaniement complet du projet est impossible car les noms des fonctions font partie de l'API et certains utilisateurs utilisent l'ancien code client).
Exemple simple, ancien code :
def helloFunc(name):
print 'hello %s' % name
Nouveau :
def hello_func(name):
print 'hello %s' % name
Mais les deux fonctions devraient fonctionner :
>>hello_func('Alex')
>>'hello Alex'
>>helloFunc('Alf')
>>'hello Alf'
Je pense à :
def helloFunc(name):
hello_func(name)
mais je n'aime pas ça (dans le projet, il y a environ 50 fonctions, et ça fera un peu désordre, je pense).
Quelle est la meilleure façon de procéder (sans duplication de la source) ? Est-il possible de créer un décorateur universel ?
Merci.