Можно ли изменить имя функции в определении?

Я попробовал несколько способов изменить имя функции в определении, но они не увенчались успехом.

>>> def f():
        pass
>>> f.__name__
'f'
>>> def f():
        f.__name__ = 'new name'
>>> f.__name__
'f'
>>> def f():
        self.__name__ = 'new name'
>>> f.__name__
'f'

Но я могу изменить атрибут имени после его определения.

>>> def f():
        pass
>>> f.__name__ = 'new name'
>>> f.__name__
'new name'

Любой способ изменить/установить его в определении (кроме использования декоратора)?

7
задан beardc 3 June 2012 в 22:28
поделиться