Dalam tutorial ini, anda akan belajar mengenai pemboleh ubah Global Python, Pemboleh ubah tempatan, pemboleh ubah Nonlokal dan di mana menggunakannya.
Video: Pemboleh ubah Tempatan dan Global Python
Pemboleh ubah Global
Di Python, pemboleh ubah yang dinyatakan di luar fungsi atau dalam skop global dikenali sebagai pemboleh ubah global. Ini bermaksud bahawa pemboleh ubah global dapat diakses di dalam atau di luar fungsi.
Mari kita lihat contoh bagaimana pemboleh ubah global dibuat di Python.
Contoh 1: Buat Pembolehubah Global
x = "global" def foo(): print("x inside:", x) foo() print("x outside:", x)
Pengeluaran
x dalam: global x luar: global
Dalam kod di atas, kami membuat x sebagai pemboleh ubah global dan menentukan a foo()
untuk mencetak pembolehubah global x. Akhirnya, kita memanggil yang foo()
mana akan mencetak nilai x.
Bagaimana jika anda mahu menukar nilai x di dalam fungsi?
x = "global" def foo(): x = x * 2 print(x) foo()
Pengeluaran
UnboundLocalError: pemboleh ubah tempatan 'x' yang dirujuk sebelum tugasan
Keluaran menunjukkan ralat kerana Python memperlakukan x sebagai pemboleh ubah tempatan dan x juga tidak ditentukan di dalamnya foo()
.
Untuk menjayakan ini, kami menggunakan global
kata kunci. Lawati Python Global Keyword untuk mengetahui lebih lanjut.
Pemboleh ubah Tempatan
Pemboleh ubah yang dinyatakan di dalam badan fungsi atau dalam skop tempatan dikenali sebagai pemboleh ubah tempatan.
Contoh 2: Mengakses pemboleh ubah tempatan di luar skop
def foo(): y = "local" foo() print(y)
Pengeluaran
NameError: nama 'y' tidak ditentukan
Keluaran menunjukkan ralat kerana kami berusaha mengakses pemboleh ubah tempatan y dalam skop global sedangkan pemboleh ubah tempatan hanya berfungsi di dalam foo()
atau skop tempatan.
Mari kita lihat contoh bagaimana pemboleh ubah tempatan dibuat di Python.
Contoh 3: Buat Pembolehubah Tempatan
Biasanya, kita menyatakan pemboleh ubah di dalam fungsi untuk membuat pemboleh ubah tempatan.
def foo(): y = "local" print(y) foo()
Pengeluaran
tempatan
Mari kita lihat masalah sebelumnya di mana x adalah pemboleh ubah global dan kita mahu mengubah suai x di dalamnya foo()
.
Pemboleh ubah global dan tempatan
Di sini, kami akan menunjukkan cara menggunakan pemboleh ubah global dan pemboleh ubah tempatan dalam kod yang sama.
Contoh 4: Menggunakan pemboleh ubah Global dan Lokal dalam kod yang sama
x = "global " def foo(): global x y = "local" x = x * 2 print(x) print(y) foo()
Pengeluaran
global global tempatan
Dalam kod di atas, kami menyatakan x sebagai global dan y sebagai pemboleh ubah tempatan di foo()
. Kemudian, kami menggunakan operator pendaraban *
untuk mengubah pembolehubah global x dan kami mencetak kedua-dua x dan y.
Setelah memanggil foo()
, nilai x menjadi global global
kerana kami menggunakan x * 2
untuk mencetak dua kali global
. Selepas itu, kami mencetak nilai pemboleh ubah tempatan y iaitu local
.
Contoh 5: Pemboleh ubah global dan pemboleh ubah tempatan dengan nama yang sama
x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x)
Pengeluaran
tempatan x: 10 global x: 5
Dalam kod di atas, kami menggunakan nama x yang sama untuk pemboleh ubah global dan pemboleh ubah tempatan. Kami mendapat hasil yang berbeza ketika kami mencetak pemboleh ubah yang sama kerana pemboleh ubah dinyatakan dalam kedua-dua ruang lingkup, iaitu skop tempatan di dalam foo()
dan skop 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
Dalam kod di atas, terdapat inner()
fungsi bersarang . Kami menggunakan nonlocal
kata kunci untuk membuat pemboleh ubah bukan setempat. Yang inner()
fungsi ditakrifkan dalam skop fungsi yang lain outer()
.
Catatan : Sekiranya kita mengubah nilai pemboleh ubah bukan lokal, perubahan akan muncul dalam pemboleh ubah tempatan.