ডিএসএম এবং টেডেকের উত্তরগুলি সরাসরি আপনার প্রশ্নের উত্তর দেয়।
আমার স্ক্রিপ্টগুলিতে আমি প্রায়শই alচ্ছিক dict.pop()
এবং অতিরিক্ত যুক্তিগুলি মোকাবেলায় সুবিধাজনক ব্যবহার করি । এখানে একটি সাধারণ print()
মোড়কের উদাহরণ :
def my_print(*args, **kwargs):
prefix = kwargs.pop('prefix', '')
print(prefix, *args, **kwargs)
তারপর:
>>> my_print('eggs')
eggs
>>> my_print('eggs', prefix='spam')
spam eggs
আপনি দেখতে পাচ্ছেন, যদি prefix
এটি অন্তর্ভুক্ত না থাকে kwargs
তবে ডিফল্ট ''
(খালি স্ট্রিং) স্থানীয় prefix
ভেরিয়েবলে সংরক্ষণ করা হচ্ছে । যদি এটি দেওয়া হয়, তবে এর মান ব্যবহার করা হচ্ছে।
এটি সাধারণত কোনও ধরণের ফাংশনের জন্য মোড়ক লেখার জন্য একটি কমপ্যাক্ট এবং পঠনযোগ্য রেসিপি: সর্বদা কেবল আর্গুমেন্টগুলি আপনি বুঝতে পারেন না, এমনকি তাদের অস্তিত্ব আছে কিনা তাও জানেন না। আপনি যদি সর্বদা পাস করে থাকেন *args
এবং **kwargs
আপনার কোডটি ধীর করে তোলেন এবং আপনার আরও কিছুটা টাইপিংয়ের দরকার পড়ে তবে যদি কথিত ফাংশনের ইন্টারফেসগুলি (এই ক্ষেত্রে print
) পরিবর্তিত হয় তবে আপনার কোড পরিবর্তন করার দরকার নেই। এই ইন্টারফেসটি সমস্ত ইন্টারফেস পরিবর্তনগুলিকে সমর্থন করার সময় উন্নয়নের সময় হ্রাস করে।