Камбінаванне параметраў у 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'))