পাইথনে প্যারামিটার কম্বিনেশন

একই ফাংশনে একই সাথে নামযুক্ত এবং অবস্থানগত প্যারামিটার পাস করা যায়। এটি * চিহ্ন ব্যবহার করে করা হয়, যা বোঝায় যে এর ডানদিকে উল্লিখিত প্যারামিটারগুলি নামযুক্ত হিসাবে বিবেচনা করা উচিত, যদি তাদের ডিফল্ট মান ব্যবহার করার প্রয়োজন না হয়।

আসুন একটি ফাংশন তৈরি করি যা কনসোলে সমস্ত প্যারামিটার প্রিন্ট করবে। ভেরিয়েবল 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'))