Nyetel argumen standar ing definisi fungsi Python nyebabake nilai gawan digunakake yen argumen diilangi sajrone telpon fungsi.
Rincian ing ngisor iki diterangake ing ngisor iki.
- Nyetel Argumen Default
- Watesan ing posisi argumen standar
- Elinga yen dhaptar utawa kamus digunakake minangka nilai standar
Nyetel Argumen Default
Yen jeneng argumen = nilai standar ing definisi fungsi, nilai standar bakal digunakake nalika argumen sing cocog diilangi.
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
Watesan ing posisi argumen standar
Nempatake argumen standar sadurunge argumen normal (argumen sing ora ana nilai standar) nalika nemtokake fungsi nyebabake kesalahan.SyntaxError
# def func_default_error(arg2='default_a', arg3='default_b', arg1): # print(arg1) # print(arg2) # SyntaxError: non-default argument follows default argument
Elinga yen dhaptar utawa kamus digunakake minangka nilai standar
Yen obyek sing bisa dianyari (bisa diganti) kayata dhaptar utawa kamus ditemtokake minangka nilai standar, obyek kasebut bakal digawe nalika fungsi kasebut ditetepake. Banjur, nalika fungsi kasebut diarani tanpa argumen sing cocog, obyek sing padha digunakake.
Nilai argumen standar dievaluasi saka kiwa menyang tengen nalika definisi fungsi dieksekusi. Iki tegese ekspresi argumen standar dievaluasi mung sapisan nalika fungsi kasebut ditetepake, lan nilai “diwilang” padha digunakake kanggo saben telpon.
8.7. Function definitions — Python 3.10.2 Documentation
Mangkono, contone, yen fungsi ditetepake sing njupuk dhaftar utawa kamus minangka argumen standar lan nambah unsur menyang, lan disebut kaping pirang-pirang tanpa pitakonan, unsur bakal ditambahake menyang obyek padha bola-bali.
Conto kanggo listing.
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]
Tuladha kanggo kamus.
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}
Objek anyar digawe saben fungsi diarani.
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]