একক তারা *
ক্রম / সংগ্রহটি অবস্থানগত আর্গুমেন্টে আনপ্যাক করে, তাই আপনি এটি করতে পারেন:
def sum(a, b):
return a + b
values = (1, 2)
s = sum(*values)
এটি টিউপলটিকে আনপ্যাক করবে যাতে এটি বাস্তবে এটি কার্যকর করে:
s = sum(1, 2)
ডাবল স্টার **
একই কাজ করে, কেবল অভিধান এবং এইভাবে নাম যুক্তি ব্যবহার করে:
values = { 'a': 1, 'b': 2 }
s = sum(**values)
আপনি একত্রিত করতে পারেন:
def sum(a, b, c, d):
return a + b + c + d
values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = sum(*values1, **values2)
হিসাবে কার্যকর করা হবে:
s = sum(1, 2, c=10, d=15)
অধ্যায় 4.7.4 দেখুন - পাইথন ডকুমেন্টেশনের আর্গুমেন্ট তালিকাগুলি আনপ্যাক করা ।
অতিরিক্তভাবে আপনি নিতে *x
এবং **y
যুক্তিগুলি কার্যকারিতা সংজ্ঞায়িত করতে পারেন , এটি কোনও ফাংশনটিকে এমন কোনও সংখ্যাগত এবং / অথবা নাম যুক্তিগুলিকে মেনে নিতে অনুমতি দেয় যা নির্দিষ্টভাবে ঘোষণায় নামকরণ করা হয় না।
উদাহরণ:
def sum(*values):
s = 0
for v in values:
s = s + v
return s
s = sum(1, 2, 3, 4, 5)
বা সাথে **
:
def get_a(**values):
return values['a']
s = get_a(a=1, b=2)
এটি আপনাকে বিপুল সংখ্যক alচ্ছিক প্যারামিটারগুলি ঘোষণা না করে নির্দিষ্ট করার অনুমতি দিতে পারে।
এবং আবারও, আপনি একত্রিত করতে পারেন:
def sum(*values, **options):
s = 0
for i in values:
s = s + i
if "neg" in options:
if options["neg"]:
s = -s
return s
s = sum(1, 2, 3, 4, 5)
s = sum(1, 2, 3, 4, 5, neg=True)
s = sum(1, 2, 3, 4, 5, neg=False)
*
এবং**
অপারেটর রয়েছে যার এই সিনট্যাক্সের সাথে কোনও সম্পর্ক নেই।