में अजगर 2.x (मैं 2.7 का उपयोग करें), जो के साथ डिफ़ॉल्ट तर्क का उपयोग करने के लिए उचित तरीका है *argsऔर **kwargs?
मुझे इस विषय से संबंधित SO पर एक प्रश्न मिला है, लेकिन वह पायथन 3 के लिए है :
* args, ** kwargs और वैकल्पिक / डिफ़ॉल्ट तर्क के साथ पायथन फ़ंक्शन को कॉल करना
वहाँ, वे कहते हैं कि यह विधि काम करती है:
def func(arg1, arg2, *args, opt_arg='def_val', **kwargs):
#...
2.7 में, यह एक में परिणाम है SyntaxError। क्या ऐसे फ़ंक्शन को परिभाषित करने का कोई अनुशंसित तरीका है?
मैं इसे इस तरह से काम कर रहा था, लेकिन मुझे लगता है कि वहाँ एक अच्छा समाधान है।
def func(arg1, arg2, *args, **kwargs):
opt_arg ='def_val'
if kwargs.__contains__('opt_arg'):
opt_arg = kwargs['opt_arg']
#...