Параметры по умолчанию
Синтаксис с параметрами по умолчанию в целом похож на PHP:
PHP:
function makeyogurt($flavour, $type = "acidophilus")
{
return "Making a bowl of $type $flavour.";
}
Python:
def makeyogurt(flavour, ftype="acidophilus"):
return "Making a bowl of %s %s." % (ftype, flavour, )
Функция с неизвестным числом аргументов
Порой вам нужна функция под неизвестное количество аргументов. Это может быть: проксирующая функция, логирующая функция или функция для получения сигналов. В PHP, начиная с 5.6, вам доступен следующий синтаксис:
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4);
// Или
echo add(...[1, 2, 3, 4]);
В Python аналогично можно ловить в массив неименнованные и в словарь именованные аргументы:
def acc(*args, **kwargs):
total = 0
for n in args:
total += n
return total
print(acc(1, 2, 3, 4))
# Или
print(acc(*[1, 2, 3, 4]))
Соответственно *args — list неименованных аргументов, **kwargs — dict именованных аргументов.