Dalam tutorial ini, Anda akan belajar tentang variabel Global Python, variabel Lokal, variabel Nonlokal dan di mana menggunakannya.
Video:Variabel Lokal dan Global Python
Variabel Global
Dalam Python, variabel yang dideklarasikan di luar fungsi atau dalam lingkup global dikenal sebagai variabel global. Ini berarti bahwa variabel global dapat diakses di dalam atau di luar fungsi.
Mari kita lihat contoh bagaimana variabel global dibuat dengan Python.
Dalam kode di atas, kami membuat x sebagai variabel global dan mendefinisikan foo() untuk mencetak variabel global x . Terakhir, kita panggil foo() yang akan mencetak nilai x .
Bagaimana jika Anda ingin mengubah nilai x di dalam suatu fungsi?
x = "global"
def foo():
x = x * 2
print(x)
foo()
Keluaran
UnboundLocalError: local variable 'x' referenced before assignment
Output menunjukkan kesalahan karena Python memperlakukan x sebagai variabel lokal dan x juga tidak didefinisikan di dalam foo() .
Untuk membuatnya berfungsi, kami menggunakan global kata kunci. Kunjungi Python Global Keyword untuk mempelajari lebih lanjut.
Variabel Lokal
Variabel yang dideklarasikan di dalam badan fungsi atau dalam lingkup lokal dikenal sebagai variabel lokal.
Contoh 2:Mengakses variabel lokal di luar cakupan
def foo():
y = "local"
foo()
print(y)
Keluaran
NameError: name 'y' is not defined
Output menunjukkan kesalahan karena kami mencoba mengakses variabel lokal y dalam lingkup global sedangkan variabel lokal hanya bekerja di dalam foo() atau lingkup lokal.
Mari kita lihat contoh bagaimana variabel lokal dibuat dengan Python.
Contoh 3:Buat Variabel Lokal
Biasanya, kita mendeklarasikan variabel di dalam fungsi untuk membuat variabel lokal.
def foo():
y = "local"
print(y)
foo()
Keluaran
local
Mari kita lihat masalah sebelumnya di mana x adalah variabel global dan kami ingin memodifikasi x di dalam foo() .
Variabel global dan lokal
Di sini, kami akan menunjukkan cara menggunakan variabel global dan variabel lokal dalam kode yang sama.
Contoh 4:Menggunakan variabel Global dan Lokal dalam kode yang sama
x = "global "
def foo():
global x
y = "local"
x = x * 2
print(x)
print(y)
foo()
Keluaran
global global
local
Dalam kode di atas, kami mendeklarasikan x sebagai global dan y sebagai variabel lokal di foo() . Kemudian, kami menggunakan operator perkalian * untuk mengubah variabel global x dan kami mencetak keduanya x dan y .
Setelah memanggil foo() , nilai x menjadi global global karena kami menggunakan x * 2 untuk mencetak dua kali global . Setelah itu, kami mencetak nilai variabel lokal y yaitu local .
Contoh 5:Variabel global dan variabel Lokal dengan nama yang sama
x = 5
def foo():
x = 10
print("local x:", x)
foo()
print("global x:", x)
Keluaran
local x: 10
global x: 5
Dalam kode di atas, kami menggunakan nama yang sama x untuk variabel global dan variabel lokal. Kami mendapatkan hasil yang berbeda ketika kami mencetak variabel yang sama karena variabel dideklarasikan di kedua lingkup, yaitu lingkup lokal di dalam foo() dan cakupan global di luar foo() .
Saat kita mencetak variabel di dalam foo() itu menghasilkan local x: 10 . Ini disebut lingkup lokal variabel.
Demikian pula, ketika kita mencetak variabel di luar foo() , ini menghasilkan
global x:5
. Ini disebut cakupan global variabel.
Variabel Nonlokal
Variabel nonlokal digunakan dalam fungsi bersarang yang cakupan lokalnya tidak ditentukan. Ini berarti bahwa variabel tidak boleh berada dalam lingkup lokal maupun global.
Mari kita lihat contoh bagaimana variabel nonlokal digunakan dalam Python.
Kami menggunakan nonlocal kata kunci untuk membuat variabel nonlokal.
Contoh 6:Buat variabel nonlokal
def outer():
x = "local"
def inner():
nonlocal x
x = "nonlocal"
print("inner:", x)
inner()
print("outer:", x)
outer()
Keluaran
inner: nonlocal
outer: nonlocal
Dalam kode di atas, ada inner() bersarang fungsi. Kami menggunakan nonlocal kata kunci untuk membuat variabel nonlokal. inner() fungsi didefinisikan dalam lingkup fungsi lain outer() .
Catatan :Jika kita mengubah nilai variabel nonlokal, perubahan akan muncul di variabel lokal.