I refactor mój stary kod i chcę zmienić nazwy funkcji zgodnie z pep8. Ale chcę zachować wsteczną kompatybilność ze starymi częściami systemu (całkowite zreorganizowanie projektu jest niemożliwe, ponieważ nazwy funkcji są częścią API, a niektórzy użytkownicy używają starego kodu klienta).Zmiana nazwy funkcji z zachowaniem kompatybilności wstecznej
Prosty przykład, stary kod:
def helloFunc(name):
print 'hello %s' % name
Nowość:
def hello_func(name):
print 'hello %s' % name
Ale obie funkcje powinny działać:
>>hello_func('Alex')
>>'hello Alex'
>>helloFunc('Alf')
>>'hello Alf'
myślę o:
def helloFunc(name):
hello_func(name)
, ale nie podoba mi się to (w projekcie około 50 funkcji, a będzie to wyglądać niechlujnie, jak sądzę).
Jaki jest najlepszy sposób na to (z wyłączeniem powielania zasobów)? Czy możliwe jest stworzenie jakiegoś uniwersalnego dekoratora?
Dzięki.
Och, jak mogłem o tym zapomnieć! Dzięki! – vlad
@vlad - Dodałem funkcję, która moim zdaniem automatycznie doda 'function_with_underscores' z modułu' modinput' na 'modadd' jako' functionWithUnderscores' (ale nie zadziała tak naprawdę z funkcjami 'lambda', ponieważ nie mają sprawdzalna nazwa (AFAIK) – mgilson