संभव डुप्लिकेट:
“Least Astonishment” in Python: The Mutable Default Argumentवैकल्पिक पैरामीटर और उनके डिफ़ॉल्ट मानों
मैं उलझन में एक तरह से के बारे में कैसे वैकल्पिक पैरामीटर अजगर कार्य/तरीकों में काम कर रहा हूँ।
मैं निम्नलिखित कोड ब्लॉक है:
>>> def F(a, b=[]):
... b.append(a)
... return b
...
>>> F(0)
[0]
>>> F(1)
[0, 1]
>>>
क्यों F(1)
रिटर्न [0, 1]
और नहीं [1]
?
मेरा मतलब है, के अंदर क्या हो रहा है?
आपको लगता है कि आसानी से देख सकते बस जोड़कर से पहले ख का मूल्य मुद्रण द्वारा: एक डिफ़ॉल्ट सूची प्राप्त (या शब्दकोश, या सेट) करने का सही तरीका रन टाइम पर यह बजाय बनाने के लिए, समारोह के अंदर है सूची में। :) – sam