Py2 и Py3 совместимый код для замены расширенной распаковки (*args) в функции
У меня есть код на python3, который я пытаюсь сделать совместимым с python2. Это было в основном легко с помощью six
пакет и __future__
, но я не могу найти способ "расширенной распаковки" (т.е. используя *args
синтаксис). Например, функция:
def func(a, *args, b=None, **kwargs):
pass
Какой самый элегантный и / или самый простой способ сделать это совместимым как с python2, так и с python3? Есть ли решение в six
Например, обертка или что-то?
Хотя вопрос " Аргументы по умолчанию с *args и ** kwargs" аналогичен, его решение состоит в том, чтобы использовать другую функцию вместо того, чтобы заставить пример работать (хотя, конечно, это может быть невозможно). т.е. func(a, b=None, *args, **kwargs)
вместо.
Так как это поднимает SyntaxError
перед исполнением try-except
не сработает...