Я хотел бы иметь возможность обернуть функцию, сохраняя при этом необязательные (ключевые слова) аргументы во внешней функции. Я могу это сделать:Оберните функцию python, но пусть внешняя функция имеет ключевое слово arg
def outer(p1, p2, *a, **k):
inner(*a, **k)
но что, если я хочу, чтобы p2 был «необязательным аргументом»? Очевидно:
def outer(p1, p2=None, *a, **k):
inner(*a, **k)
не будет работать, и я знаю, почему это не будет работать. Мне интересно, есть ли хороший, чистый способ достичь этого. Есть ли какая-то известная схема или конвенция?
Использование декоратора функций – volcano
Что именно вы подразумеваете под * это не сработает *? – alko
По ** необязательно ** вы имеете в виду, что хотите использовать 'p2' в качестве аргумента только для ключевого слова? Если это так, попробуйте: [Python 2.x - аргументы по умолчанию с * args и ** kwargs] (http://stackoverflow.com/q/15301999/846892) –