பைதான் செயல்பாடுகளில் இயல்புநிலை வாதங்களை எவ்வாறு பயன்படுத்துவது மற்றும் குறிப்பது

வணிக

ஒரு பைதான் செயல்பாட்டு வரையறையில் இயல்புநிலை வாதத்தை அமைப்பது, செயல்பாடு அழைப்பின் போது வாதம் தவிர்க்கப்பட்டால், இயல்புநிலை மதிப்பைப் பயன்படுத்துகிறது.

பின்வரும் விவரங்கள் கீழே விவரிக்கப்பட்டுள்ளன.

  • இயல்புநிலை வாதங்களை அமைத்தல்
  • இயல்புநிலை வாதங்களின் நிலை மீதான கட்டுப்பாடுகள்
  • ஒரு பட்டியல் அல்லது அகராதி இயல்புநிலை மதிப்பாகப் பயன்படுத்தப்படும்போது என்பதை நினைவில் கொள்ளவும்

இயல்புநிலை வாதங்களை அமைத்தல்

செயல் விளக்கத்தில் வாதத்தின் பெயர் = இயல்புநிலை மதிப்பு எனில், தொடர்புடைய வாதம் தவிர்க்கப்படும் போது இயல்புநிலை மதிப்பு பயன்படுத்தப்படும்.

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]