Պայթոնում տեսանելիության տիրույթների փոխազդեցություն

Լինում են դեպքեր, երբ արտաքին (գլոբալ) և ներքին (լոկալ) փոփոխականները ունեն նույն անունը:

pythonnum = 1

def func():
  num = 2
  print(num)

Միևնույն ժամանակ, կարևոր է հասկանալ, որ լոկալ num-ը, եթե նույնիսկ ունի նույն անունը, ինչ գլոբալը, բայց Պայթոնի համար այն մեկ այլ փոփոխական է: Սա նշանակում է, որ գլոբալ num-ը ՉԻ վերագրվում ֆունկցիայի ներսում, այլ պահպանում է իր սկզբնական արժեքը: func ֆունկցիան կանչելիս console-ում կցուցադրվի միայն լոկալ num-ի արժեքը, իսկ print-ի միջոցով՝ գլոբալ փոփոխականի արժեքը:

pythonfunc() # կարտադրի 2
print(num) # կարտադրի 1
Задание 1

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum = 10

def func():
  num = 5
  return num

func()
print(num)
Задание 2

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum = 3

def func():
  num = 4
  return num

num = func()
print(num)
Задание 3

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum = 1

def func():
  num = 2
  return 1

num = func()
print(num)
Задание 4

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum1 = 1

def func():
  num2 = 2

func()
print(num1)
Задание 5

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum1 = 1

def func():
  num2 = 2

func()
print(num2)
Задание 6

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum1 = 1

def func():
  num2 = 2

func()
num2 = 3
print(num2)
Задание 7

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum1 = 1
num2 = 2

def func():
  num2 = 3

func()
print(num2)
Задание 8

Ինչի՞ է հավասար լինելու հետևյալ կոդի կատարման արդյունքը:

pythonnum1 = 1

def func():
  num1 = 2

print(num1)