ডিএসএম এবং টেডেকের উত্তরগুলি সরাসরি আপনার প্রশ্নের উত্তর দেয়।
আমার স্ক্রিপ্টগুলিতে আমি প্রায়শই 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) পরিবর্তিত হয় তবে আপনার কোড পরিবর্তন করার দরকার নেই। এই ইন্টারফেসটি সমস্ত ইন্টারফেস পরিবর্তনগুলিকে সমর্থন করার সময় উন্নয়নের সময় হ্রাস করে।