Cara nggunakake lan nyathet argumen standar ing fungsi Python

Bisnis

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]