Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗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'))
byenru