АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmFnPC 14 of 129 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

Комбинирование параметров в Python

В одну и ту же функцию можно одновременно передать именованные и позиционные параметры. Делается это с помощью символа *, который обозначает, что параметры указанные справа от него следует считать именованными, если их значения по умолчанию не нужно использовать.

Давайте создадим функцию, которая будет выводить все параметры в консоль. Переменная data будет обозначать обычный позиционный параметр. Далее после символа * задаются две переменные start и end с дефолтными значениями. Однако при вызове функции сделаем эти переменные именованными:

def func(data, *, start=0, end=100): print(data, start, end) func(1, start=2, end=3)

Результат выполнения кода:

1 2 3

Если же убрать дефолтное значение переменной start и в то же время убрать ее как именованный параметр, то выведется ошибка. Это происходит потому, что символ * уже определил start как именованную переменную:

def func(data, *, start, end=100): print(data, start, end) func(1, 2, end=3) # выведет ошибку

Каким будет результат выполнения следующего кода:

def func(num1, num2, *, num3): return (num1 + num2) * num3 print(func(2, 4, num3=3))

Каким будет результат выполнения следующего кода:

def func(num1, *, num2, num3): return (num1 - num2) / num3 print(func(12, 4, num3=5))

Каким будет результат выполнения следующего кода:

def func(*, name='user1', age='18'): return 'Username is ' + name + ' age is ' + age print(func(name='john'))
enru