Переменное количество аргументов в функции

Можно ли запустить такую ​​функцию:

def call(a,*alphabets,*numbers):
    print(a)
    print(alphabets)
    print(numbers)

Я получаю следующую ошибку:

  File "<ipython-input-331-ddaef8a7e66f>", line 1
    def call(a,*alphabets,*numbers):
                          ^
SyntaxError: invalid syntax

Может кто-нибудь сказать мне, если есть альтернативный способ сделать это?

1 ответ

Решение

Проще говоря: требуется, чтобы вызывающий абонент прошел два списка (или кортежи или что-то еще):

def call(a,alphabets=None,numbers=None):
    if alphabets is None:
        alphabets = []
    if numbers is None:
        numbers = []
    print(a)
    print(alphabets)
    print(numbers)


call("?")
call("?", ["a", "b", "c"])
call("?", ["a", "b", "c"], (1, 2, 3))
call("?"), None, (1, 2, 3))
# etc
Другие вопросы по тегам