పైథాన్ ఫంక్షన్ డెఫినిషన్లో డిఫాల్ట్ ఆర్గ్యుమెంట్ని సెట్ చేయడం వలన ఫంక్షన్ కాల్ సమయంలో ఆర్గ్యుమెంట్ తొలగించబడితే డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.
కింది వివరాలు క్రింద వివరించబడ్డాయి.
- డిఫాల్ట్ ఆర్గ్యుమెంట్లను సెట్ చేస్తోంది
- డిఫాల్ట్ వాదనల స్థానంపై పరిమితులు
- జాబితా లేదా నిఘంటువును డిఫాల్ట్ విలువగా ఉపయోగించినప్పుడు గమనించండి
డిఫాల్ట్ ఆర్గ్యుమెంట్లను సెట్ చేస్తోంది
ఫంక్షన్ నిర్వచనంలో వాదన పేరు = డిఫాల్ట్ విలువ అయితే, సంబంధిత ఆర్గ్యుమెంట్ తొలగించబడినప్పుడు డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.
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]