У меня есть определенный код python-3.12, который я хочу протестировать на версиях >= python-3.8. Это пример кода, который у меня есть:
Код: Выделить всё
from typing import override
...
class Base:
...
def some_method(self, some_arg):
...
class Derived(Base):
...
@override
def some_method(self, some_arg):
...
Я использую tox для тестирования своего кода на различных версиях Python, и поскольку декоратор @override был недавно представлен в Python, поэтому я получаю сообщение об ошибке в своем tox 3.10. интерпретация Python как:
Код: Выделить всё
ImportError: cannot import name 'override' from 'typing' (/usr/lib/python3.10/typing.py)
Поскольку я хочу сохранить обратную совместимость своего кода с более ранними версиями (по крайней мере 3.8) и поскольку я использую новые функции (например, @override) из 3.12, я бы Прошу членов SO любезно помочь мне сохранить новые функции и обеспечить обратную совместимость кода.
P.S: Я знаю, что моим последним средством было бы просто написать все на Python-3.8, но давайте оставь это напоследок.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... -decorator