पाइथन प्रकार्यहरूमा पूर्वनिर्धारित तर्कहरू कसरी प्रयोग गर्ने र नोट गर्ने

व्यापार

पाइथन प्रकार्य परिभाषामा पूर्वनिर्धारित तर्क सेट गर्नाले पूर्वनिर्धारित मान प्रयोग गर्नको लागि कारण हुन्छ यदि फंक्शन कलको समयमा तर्क मेटाइन्छ।

निम्न विवरणहरू तल वर्णन गरिएको छ।

  • पूर्वनिर्धारित तर्कहरू सेट गर्दै
  • पूर्वनिर्धारित तर्कहरूको स्थितिमा अवरोधहरू
  • नोट गर्नुहोस् कि जब सूची वा शब्दकोश पूर्वनिर्धारित मानको रूपमा प्रयोग गरिन्छ

पूर्वनिर्धारित तर्कहरू सेट गर्दै

यदि तर्क नाम = प्रकार्य परिभाषामा पूर्वनिर्धारित मान हो भने, पूर्वनिर्धारित मान प्रयोग गरिनेछ जब सम्बन्धित तर्क मेटाइन्छ।

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]
Copied title and URL