В моем пакете Python я использую Path.glob для рекурсивного поиска некоторых файлов. Я специально хочу, чтобы символические ссылки выполнялись всегда, когда это возможно, поэтому я бы включил опцию recurse_symlinks=False. Однако теперь я нарушил обратную совместимость для версии < 3.13, потому что этот аргумент был введен совсем недавно. Например, Python 3.12 это приведет к такому исключению:
Код: Выделить всё
TypeError: Path.glob() got an unexpected keyword argument 'recurse_symlinks'
Параметры
Некоторые мысли:
- Выполните if-else на основе версии Python, например Platform.python_version() или sys.version_info
- Перехватите TypeError и повторите попытку без нового аргумента
- Проверьте другую функцию из pathlib того же возраста, чтобы определить версию, например: if hasattr(my_path, "full_match")... (full_match)
Есть ли лучший метод?
Подробнее здесь: https://stackoverflow.com/questions/798 ... atures-e-g
Мобильная версия