Meriv çawa di fonksiyonên Python de argûmanên xwerû bikar tîne û destnîşan dike

Dikan

Sazkirina argumanek xwerû di pênasekirina fonksiyonek Python de dibe sedem ku nirxa xwerû were bikar anîn heke argûman di dema bangek fonksiyonê de were derxistin.

Agahiyên jêrîn li jêr têne diyar kirin.

  • Sazkirina Argumanên Pêşniyar
  • Astengiyên li ser helwesta argumanên xwerû
  • Bala xwe bidinê ku gava navnîşek an ferhengek wekî nirxa xwerû tê bikar anîn

Sazkirina Argumanên Pêşniyar

Ger di pênasekirina fonksiyonê de navê arguman = nirxa xwerû, dema ku argumana têkildar ji holê rabe dê nirxa xwerû were bikar anîn.

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

Astengiyên li ser helwesta argumanên xwerû

Dema danasîna fonksiyonekê li ber argumanek normal (argûmanek ku nirxek xwerû jê re nayê diyar kirin) argûmanek xwerû bi cîh kirina xeletiyekê encam dide.
SyntaxError

# def func_default_error(arg2='default_a', arg3='default_b', arg1):
#     print(arg1)
#     print(arg2)

# SyntaxError: non-default argument follows default argument

Bala xwe bidinê ku gava navnîşek an ferhengek wekî nirxa xwerû tê bikar anîn

Ger tiştek nûvekirî (guhêrbar) wekî navnîşek an ferheng wekî nirxa xwerû were destnîşan kirin, dema ku fonksiyon were destnîşankirin ew tişt dê were afirandin. Dûv re, dema ku fonksiyon bêyî argumana têkildar tê gazî kirin, heman tişt tê bikar anîn.

Dema ku danasîna fonksiyonê tê darve kirin nirxên argumana xwerû ji çepê ber bi rastê ve têne nirxandin. Ev tê wê wateyê ku dema ku fonksiyon tê destnîşan kirin îfadeya argumana xwerû tenê carekê tê nirxandin û ji bo her bangê heman nirxa “hesabkirî” tê bikar anîn.
8.7. Function definitions — Python 3.10.2 Documentation

Ji ber vê yekê, wek nimûne, heke fonksiyonek were destnîşankirin ku navnîşek an ferhengek wekî argumana xweya xwerû digire û hêmanan lê zêde dike, û bêyî wê argumanê gelek caran jê re tê gotin, hêman dê çend caran li heman tiştan werin zêdekirin.

Mînak ji bo navnîşek.

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]

Mînak ji bo ferhengê.

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}

Her gava ku fonksiyonê tê gazî kirin tiştek nû tê afirandin.

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]