Kehalusan bekerja dengan skop dalam Python

Pertimbangkan kehalusan penting bekerja dengan pembolehubah tempatan dan global.

Katakan kita ada pembolehubah global num. Mari kita buat fungsi func, yang akan memaparkan num global ke konsol:

pythonnum = 1

def func():
  print(num)

func() # akan memaparkan 1

Sekarang mari isytiharkan num tempatan pada baris di bawah fungsi print. Selepas kod dilaksanakan, ralat akan dipaparkan dalam konsol. Ini berlaku kerana Python dalam fungsi menganggap num hanya sebagai pembolehubah tempatan, yang belum diisytiharkan:

pythonnum = 1

def func():
  print(num) # akan memaparkan ralat
  num = 2

Sekarang mari kita tulis semula kod dalam fungsi supaya nilai pembolehubah num bertambah sebanyak 2:

pythonnum = 1

def func():
  num += 2 # akan memaparkan ralat

Ralat disebabkan oleh fakta bahawa ungkapan num += 2 mewakili entri berikut:

pythonnum = num + 2

Walau bagaimanapun, pembolehubah tempatan itu sendiri, yang mana penambahan dilakukan, belum diisytiharkan. Oleh itu, Python memaparkan ralat, kerana adalah mustahil untuk menambah nombor kepada nilai yang tidak wujud.

Задание 1

Apakah hasil pelaksanaan kod berikut:

pythontst = '12'

def func():
  tst = 12
  return tst
  
print(tst)
Задание 2

Apakah hasil pelaksanaan kod berikut:

pythontst = 'abc'

def func():
  tst = tst.upper()
  return tst

func()
print(tst)
Задание 3

Apakah hasil pelaksanaan kod berikut:

pythontst = 'abc'

def func():
txt = tst.upper()
return txt
    
print(func())
print(tst)