Можно ли в Python указать значение по умолчанию для аргумента функции с точки зрения других аргументов?

Предположим, у меня есть функция python, которая принимает два аргумента, но я хочу, чтобы второй аргумент был необязательным, а значение по умолчанию - это то, что было передано в качестве первого аргумента. Итак, я хочу сделать что-то вроде этого:

def myfunc(arg1, arg2=arg1):
    print (arg1, arg2)

За исключением того, что это не работает. Единственное решение, которое я могу придумать, это следующее:

def myfunc(arg1, arg2=None):
    if arg2 is None:
        arg2 = arg1
    print (arg1, arg2)

Есть ли лучший способ сделать это?

29
задан Ryan C. Thompson 1 January 2011 в 19:16
поделиться