Python ફંક્શન ડેફિનેશનમાં ડિફૉલ્ટ દલીલ સેટ કરવાથી ડિફૉલ્ટ મૂલ્યનો ઉપયોગ થાય છે જો ફંક્શન કૉલ દરમિયાન દલીલ અવગણવામાં આવે છે.
નીચેની વિગતો નીચે વર્ણવેલ છે.
- ડિફૉલ્ટ દલીલો સેટ કરી રહ્યાં છીએ
- ડિફૉલ્ટ દલીલોની સ્થિતિ પર અવરોધો
- નોંધ કરો કે જ્યારે સૂચિ અથવા શબ્દકોશનો ઉપયોગ મૂળભૂત મૂલ્ય તરીકે થાય છે
ડિફૉલ્ટ દલીલો સેટ કરી રહ્યાં છીએ
જો ફંક્શન ડેફિનેશનમાં દલીલનું નામ = ડિફૉલ્ટ મૂલ્ય હોય, તો ડિફૉલ્ટ મૂલ્યનો ઉપયોગ કરવામાં આવશે જ્યારે અનુરૂપ દલીલ અવગણવામાં આવશે.
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]