2013-07-08 8 views
5

फ़ंक्शन ऑब्जेक्ट में __defaults__ और __kwdefaults__ विशेषताएँ हैं। मैं देखता हूं कि अगर किसी फ़ंक्शन में कुछ डिफ़ॉल्ट तर्क होते हैं तो उन्हें __defaults__ पर टुपल के रूप में रखा जाता है लेकिन __kwdefaults__None है। प्रयुक्त गुण __kwdefaults__ कब उपयोग किया जाता है?__kwdefaults__ का उपयोग क्या है जो फ़ंक्शन ऑब्जेक्ट विशेषता है?

उत्तर

7
def foo(arg1, arg2, arg3, *args, kwarg1="FOO", kwarg2="BAR", kwarg3="BAZ"): 
    pass 

print(foo.__kwdefaults__) 

आउटपुट (अजगर 3):

{'kwarg1': 'FOO', 'kwarg2': 'BAR', 'kwarg3': 'BAZ'} 

*args के बाद से सभी गैर कीवर्ड तर्क निगल जाएगा, तर्क यह खोजशब्दों के साथ पारित किया जा करने के लिए है के बाद। PEP 3102 देखें।

6

यह keyword-only arguments के लिए प्रयोग किया जाता है:

>>> def a(a, *, b=2): pass 
... 
>>> a.__kwdefaults__ 
{'b': 2} 

>>> def a(*args, a=1): pass 
... 
>>> a.__kwdefaults__ 
{'a': 1} 
संबंधित मुद्दे

 संबंधित मुद्दे