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 не сработает...

0 ответов

Другие вопросы по тегам