Я реорганизую свой старый код и хочу изменить имена функций в соответствии с pep8. Но я хочу поддерживать обратную совместимость со старыми частями системы (полный рефакторинг проекта невозможен, потому что имена функций являются частью API, а некоторые пользователи используют старый код клиента).
Простой пример, старый код:
def helloFunc(name):
print 'hello %s' % name
Новое:
def hello_func(name):
print 'hello %s' % name
Но обе функции должны работать:
>>hello_func('Alex')
>>'hello Alex'
>>helloFunc('Alf')
>>'hello Alf'
Я думаю о:
def helloFunc(name):
hello_func(name)
но мне это не нравится (в проекте около 50 функций, и это будет выглядеть беспорядочно, я думаю).
Каков наилучший способ сделать это (исключая дублирование источника)? Возможно ли создание какого-то универсального декоратора?
Спасибо.