Список произвольных аргументов это функция Python, чтобы вызвать функцию с произвольным количеством аргументов. Он основан на звездочке «распаковывать» оператор *
Отказ Чтобы поймать произвольное количество функций аргументов в кортеже args
Используйте синтаксис звездочки * args
в пределах вашей функции. Например, функция def f (* args): ...
Позволяет произвольному номеру, а тип аргументов, таких как F (1)
, F (1, 2)
или даже F («Алиса», 1, 2, (3, 4))
Отказ
Этот урок QuickStart представляет полезную Python Хитрость: произвольные списки аргументов.
Синтаксис и звонки
Syntax: f(*args): ... Calls: f(1) ---> args = (1,) f(1, 2) ---> args = (1, 2) f('Alice', 1, 2, (3, 4)) ---> args = ('Alice', 1, 2, (3, 4))
Пример произвольных аргументов
Пример : Предположим, вы хотите создать функцию, которая позволяет произвольному количеству аргументов. Примером распознает лица в изображениях, где каждое изображение состоит из одного или нескольких массивов пикселей.
Решение Идея : Вы можете добиться этого, добавив звездочка -Посечение * PixelArrays
как аргумент функции. Это упаковывает произвольное количество аргументов в переменную PixelArrays и сохраняет его как кортеж Отказ Вы можете получить доступ к значениям кортежа через Индексирование или итерация в для
петля.
def recognize_faces(*pixelArrays): for arr in pixelArrays: for i in range(1, len(arr)): if arr[i] == arr[i-1]: print('Face Detected') recognize_faces([1, 0, 1, 1], [0, 0, 0, 0], [1, 0, 0, 1]) ''' Face Detected Face Detected Face Detected Face Detected Face Detected '''
Этот фиктивный код переходит на каждый массив пикселей и проверяет, одинаковы, являются ли два последующих значения. Если это так, он обнаруживает лицо. Хотя это, очевидно, не имеет смысла, оно по-прежнему показывает, как осуществлять каждый аргумент, когда может быть доступно произвольное количество аргументов.
Давайте проверим свои навыки со следующей головоломкой кода.
Python Puzzle произвольные списки аргументов
def f(a, *arguments): print(a) for arg in arguments: print(arg) f("A", "B", "C")
Что такое выход этого кода фрагмент?
Примечание : Вы можете объединить оба типа аргументов: формальные аргументы (например. a в головоломке) и произвольный список аргументов (например, * Аргументы в головоломке). Если вы названы со многими аргументами, произвольный список аргументов будет обрабатывать все, кроме формальных аргументов.
Вы мастер-кодер? Проверьте свои навыки сейчас!
Связанное видео.
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.