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