Sobes.tech
Senior

Ҳар як чоп дар функсия бо аргументи мутабельӣ бо стандарт чӣ нишон медиҳад?

sobes.tech AI

Ҷавоб аз AI

Дар забонҳо, ки дар онҳо функсияҳо метавонанд аргументи мутабъ (азменшаванда) дошта бошанд, масалан дар Python, арзишҳои муқарраршуда як маротиба дар вақти муайян кардани функсия оғоз меёбанд, на дар ҳар даъват. Ин маъно дорад, ки агар аргументи муқарраршуда объекте мутабъ (масалан, рӯйхат ё луғат) бошад, тағирот дар он байни даъватҳо нигоҳ дошта мешавад.

Масалан дар Python:


def func(a, lst=[]):
    lst.append(a)
    print(lst)

func(1)  # Натиҷа: [1]
func(2)  # Натиҷа: [1, 2]
func(3, ['x'])  # Натиҷа: ['x', 3]
func(4)  # Натиҷа: [1, 2, 4]

Тавзеҳ:

  • Дар даъвати аввал func(1) рӯйхати муқарраршуда [] истифода мешавад, ки ба он 1 илова карда мешавад.
  • Дар даъвати дуввум func(2) ҳамон рӯйхат истифода мешавад, ҳоло [1], ва 2 илова карда мешавад.
  • Дар даъвати func(3, ['x']) рӯйхати нав ['x'] дода мешавад, бинобар ин тағирот ба рӯйхати муқарраршуда таъсир намерасонад.
  • Дар даъвати охирин func(4) боз ҳам рӯйхати муқарраршуда истифода мешавад, ки ҳоло [1, 2] аст, ва 4 илова карда мешавад.

Ҳамин тариқ, ҳар як print ҳолати ҳозираи аргументи мутабъро нишон медиҳад, ки тағиротро байни даъватҳо нигоҳ медорад.