Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में किसी फ़ंक्शन में डिफ़ॉल्ट पैरामीटर मान कैसे सेट करें?

पायथन द्वारा डिफ़ॉल्ट पैरामीटर मानों को संभालना उन कुछ चीजों में से एक है जो अधिकांश नए पायथन प्रोग्रामर को परेशान कर सकता है।

एक डिफ़ॉल्ट मान के रूप में "म्यूटेबल" ऑब्जेक्ट का उपयोग करने में समस्याएँ क्या होती हैं; यानी, एक मान जिसे सूची या शब्दकोश की तरह संशोधित किया जा सकता है।

यदि कोई दूसरा तर्क प्रदान नहीं किया जाता है, तो हर बार फ़ंक्शन को कॉल करने पर एक नई सूची बनाई जाती है, ताकि अपेक्षित आउटपुट हो:

[12]
[43]

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

फ़ंक्शन परिभाषित होने पर पायथन के डिफ़ॉल्ट तर्कों का मूल्यांकन एक बार किया जाता है, न कि हर बार फ़ंक्शन को कॉल करने पर। इसका मतलब यह है कि यदि आप एक परिवर्तनीय डिफ़ॉल्ट तर्क का उपयोग करते हैं और इसे बदलते हैं, तो आप उस ऑब्जेक्ट को भविष्य में सभी कॉल के लिए फ़ंक्शन में भी बदल देंगे।

हमें क्या करना चाहिए

कोई भी तर्क प्रदान नहीं किया गया था, यह संकेत देने के लिए डिफ़ॉल्ट तर्क का उपयोग करके, फ़ंक्शन को कॉल करने पर हर बार एक नया ऑब्जेक्ट बनाएं (कोई भी अक्सर एक अच्छा विकल्प नहीं होता है)।

उदाहरण

def func(data=[]):
    data.append(1)
    return data
func()
func()
def append2(element, foo=None):
    if foo is None:
        foo = []
    foo.append(element)
    return foo
print(append2(12))
print(append2(43))

आउटपुट

[12]
[43]

  1. जावास्क्रिप्ट फ़ंक्शन के लिए डिफ़ॉल्ट पैरामीटर मान कैसे सेट करें?

    यह फ़ंक्शन मापदंडों को आसानी से संभालने के लिए आया था। डिफ़ॉल्ट मानों के साथ औपचारिक मापदंडों के आरंभीकरण की अनुमति देने के लिए आप आसानी से डिफ़ॉल्ट पैरामीटर सेट कर सकते हैं। यह तभी संभव है जब कोई मान या अपरिभाषित पारित न हो। आइए एक उदाहरण देखें लाइव डेमो <html>    <body> &nbs

  1. पायथन Matplotlib में एक बहुभिन्नरूपी फ़ंक्शन कैसे प्लॉट करें?

    पायथन में एक बहुभिन्नरूपी फ़ंक्शन को प्लॉट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - कदम फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें। यादृच्छिक बनाएं x , y और z डेटा अंक numpy का उपयोग कर रहे हैं। एक आकृति और सबप्लॉट का एक सेट बनाएं। x . के साथ स्कैटर प्लॉट

  1. Matplotlib Python में X-अक्ष मान कैसे सेट करें?

    पायथन में मैटप्लोटलिब में एक्स-अक्ष मान सेट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - x और y डेटा बिंदुओं के लिए दो सूचियाँ बनाएँ। xticks . प्राप्त करें श्रेणी मान। प्लॉट () . का उपयोग करके एक लाइन प्लॉट करें xtick श्रेणी मान और y डेटा बिंदुओं के साथ विधि। xticks . बदलें xticks()