Конкретный вариант использования, для которого он мне нужен, - не рекомендуется использовать имена классов.
Предположим, у нас есть класс A
в более ранней версии, и мы хотим отказаться от его имени, но сохранить обратную совместимость:
class A(B):
def __init__(self, *args, **kwargs):
warnings.warn('deprecation!')
super(A, self).__init__(*args, **kwargs)
... и B теперь имеет правильную реализацию.
Когда мы создаем класс A
, мы столкнемся с предупреждением об устаревании. Мы также можем использовать модуль deprecated
для декораторов на __init__
.
Однако я хочу пропустить этот процесс и написать меньше кода, и, надеюсь, достичь чего-то вроде:
@deprecated_alias('A')
class B:
# ... do something
Могу ли я как-то внедрить имя класса в пространство имен на уровне модуля, чтобы я мог использовать A
, как это?