Cara Menggunakan Variabel Global dengan Python (Kata Kunci global)
Pelajari cara kerja variabel global dengan Python. Memahami cakupan variabel, namespace lokal vs global, dan cara mengubah variabel menggunakan kata kunci global.
Ikhtisar
Memahami namespace dan pelingkupan variabel sangat penting untuk menulis perangkat lunak bebas bug dengan Python. Cakupan menentukan bagian mana dari program Anda yang dapat mengakses atau memodifikasi suatu variabel. Variabel yang dideklarasikan di luar semua fungsi ada dalam lingkup global dan dapat dibaca di mana saja dalam modul.
Namun, masalah muncul ketika suatu fungsi mencoba mengubah (menetapkan kembali) variabel global. Secara default, ketika Python melihat tugas di dalam suatu fungsi, ia mengasumsikan bahwa variabel tersebut bersifat lokal pada fungsi tersebut. Jika Anda mencoba mengubah variabel global tanpa mendeklarasikannya sebagai variabel global, Python akan membuat variabel lokal dengan nama yang sama, membiarkan variabel global tidak berubah (atau memunculkan `UnboundLocalError`).
Untuk memberi tahu Python secara eksplisit bahwa Anda ingin mengubah variabel di namespace global daripada membuat variabel lokal, Anda harus mendeklarasikannya menggunakan kata kunci `global` di dalam fungsi. Meskipun penggunaan variabel global terkadang diperlukan, hal ini umumnya dianggap sebagai praktik buruk dalam desain perangkat lunak besar karena membuat status sulit dilacak dan di-debug.
Kode & Output Eksekusi
Skrip ini mendemonstrasikan pembacaan variabel global, jebakan bayangan variabel, dan modifikasi variabel global menggunakan kata kunci global.
counter = 10 # Global variable
def read_counter():
# Reading a global variable works out-of-the-box
print("Reading global counter:", counter)
def shadow_counter():
# Attempting to assign without 'global' creates a local variable
counter = 20 # Shadowing
print("Inside shadow function:", counter)
def modify_counter():
global counter # Declaring we are writing to global scope
counter = 50
print("Inside modify function:", counter)
read_counter()
shadow_counter()
print("Counter after shadow function:", counter) # Remains 10
modify_counter()
print("Counter after modify function:", counter) # Now 50Reading global counter: 10
Inside shadow function: 20
Counter after shadow function: 10
Inside modify function: 50
Counter after modify function: 50Implementasi Langkah demi Langkah
- Deklarasikan variabel yang perlu diakses secara global di luar cakupan fungsi apa pun.
- Baca variabel global di dalam fungsi apa pun tanpa menambahkan deklarasi khusus.
- Gunakan kata kunci global (misalnya penghitung global) di dalam fungsi jika Anda perlu mengubah nilai variabel global.
- Batasi penggunaan variabel global untuk mencegah kebingungan ruang lingkup dan polusi namespace.
Pertanyaan yang Sering Diajukan
Apa itu variabel yang membayangi dengan Python?
Shadowing terjadi ketika variabel yang dideklarasikan di dalam lingkup lokal (seperti fungsi) memiliki nama yang sama dengan variabel di lingkup global luar. Variabel lokal menutupi variabel global, sehingga untuk sementara tidak dapat diakses di dalam cakupan tersebut.
Apa perbedaan antara kata kunci global dan nonlokal?
global digunakan untuk mengakses variabel yang ditentukan dalam lingkup modul terluar. nonlocal digunakan di dalam fungsi bersarang untuk mengakses variabel yang ditentukan dalam lingkup fungsi terlampir (luar).
Topik Terkait
Pelajari cara menangani pengecualian dalam Python menggunakan blok coba, kecuali, lain, dan akhirnya. Tulis kode Python yang bebas kesalahan dan tahan crash.
Cara Membuat Kelas dengan PythonPelajari cara membuat kelas dengan Python. Kuasai konstruktor __init__, metode instance, kata kunci self, dan instantiasi objek.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Variabel Python & Tipe Data Dijelaskan
Memahami variabel Python dan tipe data inti (string, integer, float, boolean). Panduan pemula lengkap untuk penugasan memori dengan Python.
Lembar
Panduan referensi lengkap untuk manipulasi string Python. Kuasai pemformatan, pencarian, pemisahan, penggantian, dan pemeriksaan properti string.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.