პარამეტრების კომბინირება 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'))