Я знаю, что * args используются, когда вы не знаете, сколько аргументов используется внутри вызова функции. Однако, что мне делать, когда я хочу, чтобы одна группа из * args делала X и одну группу из * args делать y?Python 3.X с использованием нескольких аргументов для разных вещей
-2
A
ответ
1
Вы не можете передать два *args
в пределах одной функции. Вам необходимо пройти args1
и args2
как простой list
, и вы можете передать эти списки в арг к функциям делают X
и Y
. Например:
def do_X(*args):
# Do something
def do_Y(*args):
# Do some more thing
def my_function(list1, list2):
do_X(*list1) # Pass list as `*args` here
do_Y(*list2)
И ваш призыв к my_function
будет, как:
args_1 = ['x1', 'x2'] # Group of arguments for doing `X`
args_2 = ['y1', 'y2'] # Group of arguments for doing `Y`
# Call your function
my_function(args_1, args_2)
0
В этом случае вы принимаете аргументы как два отдельных списка, которые по умолчанию могут иметь пустой список или None.
Вы не можете. Существует только один набор * args для каждой функции. –
вы можете изложить? это ваша функция, что вы пытаетесь сделать? что такое «одна группа аргов» - определенное количество или определенное время или что-то еще? – depperm
группирует аргументы в две группы до или после вызова функции. –