if len(args) == 1: r=*args
Как мне присвоить значение переменной r ?
Также для кортежа из двух параметров
if len(args) == 2: a,b = *args
if len(args) == 1: r=*args
if len(args) == 2: a,b = *args

r=args[0]
LutzТ.о. внутри кода кострукция кода в виде *args употреблять нелья, потому что интерпретатором будет символ * будет восприниматься как оператор умножения.
Переменное число аргументов: прием произвольного числа
аргументов, позиционных или в виде ключей
Функции могут использовать специальный аргумент, имени
которого предшествует символ *, для объединения произвольного числа
дополнительных аргументов в коллекцию (эта особенность часто
называется varargs, как в языке С, где также поддерживаются
списки аргументов переменной длины).
JOHN_16У неё несколько смыслов
Т.о. внутри кода кострукция кода в виде *args употреблять нелья, потому что интерпретатором будет символ * будет восприниматься как оператор умножения.
>>> print(*[1, 2, 3]) 1 2 3 >>>
dobriy_dadaДругого варианта нет.
То есть другого варианта кроме
py.user.nextя то знаю, я хотел сказать на том конкретном примере что так нельзя т.е. использование * в том смысле ограничена несколькими сферами применения, и после оператора присваивания не одно из них.
У неё несколько смыслов
JOHN_16Не, там речь не про распаковку, а про количество переданных аргументов.
Про распаковку функциями я во врезке указал.
>>> def f(*args): ... print(args) ... >>> f(1) (1,) >>> f('abc') ('abc',) >>>