Պարամետրերի համադրում Python-ում

Միևնույն ֆունկցիային կարելի է միաժամանակ փոխանցել և′ անվանված, և′ դիրքային պարամետրեր։ Դա արվում է * նշանի միջոցով, որը ցույց է տալիս, որ դրանից աջ նշված պարամետրերը պետք է համարվեն անվանված, եթե դրանց լռելյայն արժեքները պետք չէ օգտագործել։

Եկեք ստեղծենք մի ֆունկցիա, որը կտպի բոլոր պարամետրերը կոնսոլում։ data փոփոխականը կնշանակի սովորական դիրքային պարամետր։ Այնուհետև * նշանից հետո սահմանվում են երկու փոփոխական՝ start և end լռելյայն արժեքներով։ Սակայն ֆունկցիան կանչելիս մենք այս փոփոխականները դարձնում ենք անվանված։

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

Կոդի կատարման արդյունքը.

python1 2 3

Եթե start փոփոխականի լռելյայն արժեքը հեռացնենք և միաժամանակ այն չնշենք որպես անվանված պարամետր, ապա կստացվի սխալ։ Դա տեղի է ունենում, քանի որ * նշանն արդեն start-ը սահմանել է որպես անվանված փոփոխական.

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # կտպի սխալ
Задание 1

Ինչի՞ է հավասար կլինի հետևյալ կոդի կատարման արդյունքը.

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3
  
print(func(2, 4, num3=3))
Задание 2

Ինչի՞ է հավասար կլինի հետևյալ կոդի կատարման արդյունքը.

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3
  
print(func(12, 4, num3=5))
Задание 3

Ինչի՞ է հավասար կլինի հետևյալ կոդի կատարման արդյունքը.

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