पायथन फंक्शन्समध्ये डीफॉल्ट वितर्क कसे वापरायचे आणि लक्षात घ्या

व्यवसाय

पायथन फंक्शन डेफिनेशनमध्ये डीफॉल्ट वितर्क सेट केल्याने फंक्शन कॉल दरम्यान वितर्क वगळल्यास डीफॉल्ट मूल्य वापरले जाते.

खालील तपशील खाली वर्णन केले आहेत.

  • डीफॉल्ट वितर्क सेट करणे
  • डीफॉल्ट वितर्कांच्या स्थितीवर मर्यादा
  • लक्षात ठेवा की जेव्हा एखादी सूची किंवा शब्दकोश डीफॉल्ट मूल्य म्हणून वापरले जाते

डीफॉल्ट वितर्क सेट करणे

वितर्क नाव = फंक्शन डेफिनिशनमध्ये डीफॉल्ट मूल्य असल्यास, संबंधित वितर्क वगळल्यावर डीफॉल्ट मूल्य वापरले जाईल.

def func_default(arg1, arg2='default_x', arg3='default_y'):
    print(arg1)
    print(arg2)
    print(arg3)

func_default('a')
# a
# default_x
# default_y

func_default('a', 'b')
# a
# b
# default_y

func_default('a', arg3='c')
# a
# default_x
# c

डीफॉल्ट वितर्कांच्या स्थितीवर मर्यादा

फंक्शन परिभाषित करताना सामान्य आर्ग्युमेंटच्या आधी डीफॉल्ट वितर्क ठेवल्याने (एक युक्तिवाद ज्यासाठी कोणतेही डीफॉल्ट मूल्य निर्दिष्ट केलेले नाही) त्रुटी उद्भवते.
SyntaxError

# def func_default_error(arg2='default_a', arg3='default_b', arg1):
#     print(arg1)
#     print(arg2)

# SyntaxError: non-default argument follows default argument

लक्षात ठेवा की जेव्हा एखादी सूची किंवा शब्दकोश डीफॉल्ट मूल्य म्हणून वापरले जाते

सूची किंवा शब्दकोशासारखी अपडेट करण्यायोग्य (परिवर्तनीय) ऑब्जेक्ट डीफॉल्ट मूल्य म्हणून निर्दिष्ट केल्यास, फंक्शन परिभाषित केल्यावर तो ऑब्जेक्ट तयार केला जाईल. त्यानंतर, जेव्हा संबंधित युक्तिवाद न करता फंक्शन कॉल केले जाते, तेव्हा समान ऑब्जेक्ट वापरला जातो.

फंक्शन व्याख्या कार्यान्वित केल्यावर डीफॉल्ट वितर्क मूल्यांचे डावीकडून उजवीकडे मूल्यांकन केले जाते. याचा अर्थ डिफॉल्ट वितर्क अभिव्यक्तीचे मूल्यमापन फंक्शन परिभाषित केल्यावरच केले जाते आणि प्रत्येक कॉलसाठी समान “गणना केलेले” मूल्य वापरले जाते.
8.7. Function definitions — Python 3.10.2 Documentation

अशाप्रकारे, उदाहरणार्थ, जर एखादे फंक्शन परिभाषित केले असेल जे सूची किंवा डिक्शनरी त्याचे डीफॉल्ट वितर्क म्हणून घेते आणि त्यात घटक जोडते आणि त्या युक्तिवादाशिवाय अनेक वेळा कॉल केले जाते, तर घटक एकाच ऑब्जेक्टमध्ये वारंवार जोडले जातील.

सूचीसाठी उदाहरण.

def func_default_list(l=[0, 1, 2], v=3):
    l.append(v)
    print(l)

func_default_list([0, 0, 0], 100)
# [0, 0, 0, 100]

func_default_list()
# [0, 1, 2, 3]

func_default_list()
# [0, 1, 2, 3, 3]

func_default_list()
# [0, 1, 2, 3, 3, 3]

शब्दकोशासाठी उदाहरण.

def func_default_dict(d={'default': 0}, k='new', v=100):
    d[k] = v
    print(d)

func_default_dict()
# {'default': 0, 'new': 100}

func_default_dict(k='new2', v=200)
# {'default': 0, 'new': 100, 'new2': 200}

प्रत्येक वेळी फंक्शन कॉल केल्यावर एक नवीन ऑब्जेक्ट तयार केला जातो.

def func_default_list_none(l=None, v=3):
    if l is None:
        l = [0, 1, 2]
    l.append(v)
    print(l)

func_default_list_none()
# [0, 1, 2, 3]

func_default_list_none()
# [0, 1, 2, 3]