DSM और Tadeck के उत्तर सीधे आपके प्रश्न का उत्तर देते हैं।
अपनी लिपियों में मैं अक्सर 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
) के इंटरफेस बदलते हैं, तो आपको अपना कोड बदलने की आवश्यकता नहीं है। यह दृष्टिकोण सभी इंटरफ़ेस परिवर्तनों का समर्थन करते हुए विकास के समय को कम करता है।