Kata Kunci Global Python (Dengan Contoh)

Pada artikel ini, Anda akan belajar tentang kata kunci global, variabel global dan kapan harus menggunakan kata kunci global.

Sebelum membaca artikel ini, pastikan Anda sudah memahami dasar-dasar Python Global, Local, dan Nonlocal Variables.

Apa kata kunci globalnya

Di Python, globalkata kunci memungkinkan Anda untuk mengubah variabel di luar cakupan saat ini. Ini digunakan untuk membuat variabel global dan membuat perubahan pada variabel dalam konteks lokal.

Aturan Kata Kunci global

Aturan dasar untuk globalkata kunci di Python adalah:

  • Saat kita membuat variabel di dalam fungsi, itu lokal secara default.
  • Ketika kita mendefinisikan variabel di luar fungsi, itu global secara default. Anda tidak harus menggunakan globalkata kunci.
  • Kami menggunakan globalkata kunci untuk membaca dan menulis variabel global di dalam fungsi.
  • Penggunaan globalkata kunci di luar fungsi tidak berpengaruh.

Penggunaan Kata Kunci global

Mari kita ambil contoh.

Contoh 1: Mengakses Variabel global Dari Dalam Fungsi

 c = 1 # global variable def add(): print(c) add()

Saat kita menjalankan program di atas, outputnya adalah:

 1

Namun, kami mungkin memiliki beberapa skenario di mana kami perlu memodifikasi variabel global dari dalam suatu fungsi.

Contoh 2: Memodifikasi Variabel Global Dari Dalam Fungsi

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

Saat kami menjalankan program di atas, outputnya menunjukkan kesalahan:

 UnboundLocalError: variabel lokal 'c' direferensikan sebelum penugasan

Ini karena kita hanya dapat mengakses variabel global tetapi tidak dapat memodifikasinya dari dalam fungsi.

Solusi untuk ini adalah dengan menggunakan globalkata kunci.

Contoh 3: Mengubah Variabel Global Dari Dalam Fungsi menggunakan global

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Saat kita menjalankan program di atas, outputnya adalah:

 Di dalam add (): 2 Dalam utama: 2

Dalam program di atas, kami mendefinisikan c sebagai kata kunci global di dalam add()fungsi.

Kemudian, kami menaikkan variabel c dengan 1, yaitu c = c + 2. Setelah itu kita panggil add()fungsinya. Akhirnya, kami mencetak variabel global c.

Seperti yang bisa kita lihat, perubahan juga terjadi pada variabel global di luar fungsi , c = 2.

Variabel Global di Seluruh Modul Python

Dengan Python, kami membuat satu modul config.pyuntuk menampung variabel global dan berbagi informasi di seluruh modul Python dalam program yang sama.

Berikut adalah bagaimana kami dapat membagikan variabel global di seluruh modul python.

Contoh 4: Berbagi Variabel global di Seluruh Modul Python

Buat config.pyfile, untuk menyimpan variabel global

 a = 0 b = "empty"

Buat update.pyfile, untuk mengubah variabel global

 import config config.a = 10 config.b = "alphabet"

Buat main.pyfile, untuk menguji perubahan nilai

 import config import update print(config.a) print(config.b)

Saat kita menjalankan main.pyfile tersebut, outputnya adalah

 10 alfabet

Dalam contoh di atas, kita telah menciptakan tiga file: config.py, update.py, dan main.py.

Modul config.pymenyimpan variabel global a dan b. Dalam update.pyfile tersebut, kami mengimpor config.pymodul dan mengubah nilai a dan b. Demikian pula, di main.pyfile, kami mengimpor config.pydan update.pymodul. Akhirnya, kami mencetak dan menguji nilai variabel global apakah mereka berubah atau tidak.

Global dalam Fungsi Bersarang

Berikut adalah bagaimana Anda dapat menggunakan variabel global dalam fungsi bersarang.

Contoh 5: Menggunakan Variabel Global dalam Fungsi Bersarang

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

Outputnya adalah:

 Sebelum bilah panggilan: 20 bilah panggilan sekarang Setelah bilah panggilan: 20 x utama: 25

Dalam program di atas, kami mendeklarasikan variabel global di dalam fungsi bersarang bar(). Di dalam foo()fungsi, x tidak berpengaruh pada kata kunci global.

Sebelum dan sesudah pemanggilan bar(), variabel x mengambil nilai dari variabel lokal yaitu x = 20. Di luar foo()fungsi, variabel x akan mengambil nilai yang ditentukan dalam bar()fungsi yaitu x = 25. Ini karena kita telah menggunakan globalkata kunci dalam x untuk membuat variabel global di dalam bar()fungsi (lingkup lokal).

Jika kita membuat perubahan di dalam bar()fungsi, perubahan tersebut muncul di luar lingkup lokal, yaitu foo().

Artikel yang menarik...