একটি Python ফাংশন সংজ্ঞাতে একটি ডিফল্ট যুক্তি সেট করার ফলে একটি ফাংশন কলের সময় আর্গুমেন্ট বাদ দিলে ডিফল্ট মান ব্যবহার করা হয়।
নিম্নলিখিত বিবরণ নীচে বর্ণনা করা হয়.
- ডিফল্ট আর্গুমেন্ট সেট করা
- ডিফল্ট আর্গুমেন্টের অবস্থানের উপর সীমাবদ্ধতা
- নোট করুন যে যখন একটি তালিকা বা অভিধান ডিফল্ট মান হিসাবে ব্যবহার করা হয়
ডিফল্ট আর্গুমেন্ট সেট করা
যদি আর্গুমেন্টের নাম = ফাংশনের সংজ্ঞায় ডিফল্ট মান, সংশ্লিষ্ট যুক্তি বাদ দিলে ডিফল্ট মান ব্যবহার করা হবে।
def func_default(arg1, arg2='default_x', arg3='default_y'): print(arg1) print(arg2) print(arg3) func_default('a') # a # default_x # default_y func_default('a', 'b') # a # b # default_y func_default('a', arg3='c') # a # default_x # c
ডিফল্ট আর্গুমেন্টের অবস্থানের উপর সীমাবদ্ধতা
একটি ফাংশন সংজ্ঞায়িত করার সময় একটি স্বাভাবিক আর্গুমেন্টের আগে একটি ডিফল্ট আর্গুমেন্ট স্থাপন করা (একটি যুক্তি যার জন্য কোন ডিফল্ট মান নির্দিষ্ট করা নেই) একটি ত্রুটির পরিণতি৷SyntaxError
# def func_default_error(arg2='default_a', arg3='default_b', arg1): # print(arg1) # print(arg2) # SyntaxError: non-default argument follows default argument
নোট করুন যে যখন একটি তালিকা বা অভিধান ডিফল্ট মান হিসাবে ব্যবহার করা হয়
যদি একটি আপডেটযোগ্য (পরিবর্তনযোগ্য) বস্তু যেমন একটি তালিকা বা অভিধানকে ডিফল্ট মান হিসাবে নির্দিষ্ট করা হয়, ফাংশনটি সংজ্ঞায়িত করা হলে সেই বস্তুটি তৈরি হবে। তারপর, যখন সংশ্লিষ্ট আর্গুমেন্ট ছাড়া ফাংশন কল করা হয়, একই বস্তু ব্যবহার করা হয়।
ডিফল্ট আর্গুমেন্ট মান বাম থেকে ডানে মূল্যায়ন করা হয় যখন ফাংশন সংজ্ঞা কার্যকর করা হয়। এর মানে হল যে ডিফল্ট আর্গুমেন্ট এক্সপ্রেশনটি শুধুমাত্র একবার মূল্যায়ন করা হয় যখন ফাংশনটি সংজ্ঞায়িত করা হয় এবং প্রতিটি কলের জন্য একই “গণনা করা” মান ব্যবহার করা হয়।
8.7. Function definitions — Python 3.10.2 Documentation
এইভাবে, উদাহরণস্বরূপ, যদি একটি ফাংশনকে সংজ্ঞায়িত করা হয় যা একটি তালিকা বা অভিধানকে তার ডিফল্ট আর্গুমেন্ট হিসাবে নেয় এবং এতে উপাদান যোগ করে এবং সেই যুক্তি ছাড়া একাধিকবার বলা হয়, উপাদানগুলি একই বস্তুতে বারবার যোগ করা হবে।
একটি তালিকা জন্য উদাহরণ.
def func_default_list(l=[0, 1, 2], v=3): l.append(v) print(l) func_default_list([0, 0, 0], 100) # [0, 0, 0, 100] func_default_list() # [0, 1, 2, 3] func_default_list() # [0, 1, 2, 3, 3] func_default_list() # [0, 1, 2, 3, 3, 3]
একটি অভিধানের উদাহরণ।
def func_default_dict(d={'default': 0}, k='new', v=100): d[k] = v print(d) func_default_dict() # {'default': 0, 'new': 100} func_default_dict(k='new2', v=200) # {'default': 0, 'new': 100, 'new2': 200}
প্রতিবার ফাংশন কল করার সময় একটি নতুন বস্তু তৈরি হয়।
def func_default_list_none(l=None, v=3): if l is None: l = [0, 1, 2] l.append(v) print(l) func_default_list_none() # [0, 1, 2, 3] func_default_list_none() # [0, 1, 2, 3]