Variabel Global, Lokal dan Nonlokal Python (Dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang variabel Python Global, variabel Lokal, variabel Nonlokal dan di mana menggunakannya.

Video: Variabel Lokal dan Global Python

Variabel Global

Di Python, variabel yang dideklarasikan di luar fungsi atau dalam lingkup global disebut 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.

Contoh 1: Buat Variabel Global

 x = "global" def foo(): print("x inside:", x) foo() print("x outside:", x)

Keluaran

 x di dalam: global x di luar: global

Dalam kode di atas, kami membuat x sebagai variabel global dan mendefinisikan a foo()untuk mencetak variabel global x. Akhirnya, kita memanggil foo()yang akan mencetak nilai x.

Bagaimana jika Anda ingin mengubah nilai x di dalam fungsi?

 x = "global" def foo(): x = x * 2 print(x) foo()

Keluaran

 UnboundLocalError: variabel lokal 'x' direferensikan sebelum penugasan

Keluaran menunjukkan kesalahan karena Python memperlakukan x sebagai variabel lokal dan x juga tidak didefinisikan di dalamnya foo().

Untuk membuat ini bekerja, kami menggunakan globalkata kunci. Kunjungi Kata Kunci Global Python untuk mempelajari lebih lanjut.

Variabel Lokal

Variabel yang dideklarasikan di dalam tubuh fungsi atau dalam lingkup lokal disebut sebagai variabel lokal.

Contoh 2: Mengakses variabel lokal di luar cakupan

 def foo(): y = "local" foo() print(y)

Keluaran

 NameError: nama 'y' tidak ditentukan

Output menunjukkan kesalahan karena kita 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, kami mendeklarasikan variabel di dalam fungsi untuk membuat variabel lokal.

 def foo(): y = "local" print(y) foo()

Keluaran

 lokal

Mari kita lihat masalah sebelumnya di mana x adalah variabel global dan kami ingin memodifikasi x di dalamnya foo().

Variabel global dan lokal

Di sini, kami akan menunjukkan bagaimana 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 lokal

Pada kode di atas, kami mendeklarasikan x sebagai global dan y sebagai variabel lokal di foo(). Kemudian, kami menggunakan operator perkalian *untuk memodifikasi variabel global x dan kami mencetak x dan y.

Setelah memanggil foo(), nilai x menjadi global globalkarena kita menggunakan the x * 2untuk mencetak dua kali global. Setelah itu, kita 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

 lokal x: 10 global x: 5

Pada 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 tersebut dideklarasikan di kedua cakupan, yaitu lingkup lokal di dalam foo()dan lingkup global di luar foo().

When we print the variable inside foo() it outputs local x: 10. This is called the local scope of the variable.

Similarly, when we print the variable outside the foo(), it outputs global x: 5. This is called the global scope of the variable.

Nonlocal Variables

Nonlocal variables are used in nested functions whose local scope is not defined. This means that the variable can be neither in the local nor the global scope.

Let's see an example of how a nonlocal variable is used in Python.

We use nonlocal keywords to create nonlocal variables.

Example 6: Create a nonlocal variable

 def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()

Output

 inner: nonlocal outer: nonlocal

Pada kode di atas, ada inner()fungsi bersarang . Kami menggunakan nonlocalkata kunci untuk membuat variabel nonlokal. The inner()Fungsi didefinisikan dalam lingkup fungsi lain outer().

Catatan : Jika kita mengubah nilai variabel nonlokal, perubahan muncul di variabel lokal.

Artikel yang menarik...