Sobes.tech
Junior — Middle
82

Python-да әртүрлі ауқымдарда айнымалыны іздеу қалай жүзеге асырылады?

AI-дан жауап

sobes.tech AI

Python-да айнымалы іздеу LEGB ережесі бойынша жүргізіледі, ол келесі тәртіпте аймақтарды көрсетеді:

  • L (Local) — функция немесе әдістің жергілікті аймағы.
  • E (Enclosing) — сыртқы (қабаттасқан) функциялардың аймағы.
  • G (Global) — ағымдағы модульдің жаһандық аймағы.
  • B (Built-in) — Python-ның кірістірілген атаулары.

Интерпретатор айнымалы атауын кездестіргенде, ол алдымен жергілікті аймақта іздейді, егер табылмаса — сыртқы функцияларға өтеді, содан кейін жаһандық аймаққа және соңында кірістірілген атауларға қарайды. Егер айнымалы ешқайда табылмаса, NameError қателігі пайда болады.

Мысал:

x = 'global'

def outer():
    x = 'enclosing'
    def inner():
        x = 'local'
        print(x)  # 'local' деп шығарады
    inner()
    print(x)      # 'enclosing' деп шығарады

outer()
print(x)          # 'global' деп шығарады