initialization - Initialisation of keyword args in Python -


क्यों निम्नलिखित है:

  वर्ग ए (ऑब्जेक्ट): def __init __ (आत्म, Var = []): self._var = var प्रिंट 'var =% s% s'% (var, id (var)) a1 = A () a1._var.append ('one') a2 = A () < / कोड>  

में परिणाम:

  var = [] 182897439952 var = ['एक'] 182897439952  

वैकल्पिक कीवर्ड तर्कों का उपयोग करते समय एक सूची के नए उदाहरण का उपयोग क्यों नहीं किया जा रहा है, तो क्या यह समझा सकता है?

आपकी फ़ंक्शन परिभाषा में रिक्त सूची एक बार बनाई जाती है, उस समय फ़ंक्शन स्वयं बनाई जाती है। यह हर बार फ़ंक्शन को कॉल नहीं किया जाता है।

यदि आप हर बार एक नया खाता चाहते हैं, तो ऐसा करें:

  वर्ग ए (वस्तु): def __init __ ( आत्म, var = कोई नहीं): यदि कोई भी नहीं है: var = [] self._var = var  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -