Cara mendefinisikan variabel global dalam python
- 953
- 222
- John Ratke
Dalam Python, variabel global adalah variabel yang didefinisikan di luar fungsi atau kelas apa pun dan dapat diakses dari mana saja dalam kode. Variabel global berguna untuk menyimpan nilai yang perlu dibagikan di berbagai bagian program, seperti opsi konfigurasi atau bendera.
Berikut adalah beberapa poin utama tentang visibilitas variabel global di Python:
- Variabel global didefinisikan di luar fungsi atau kelas dan dapat diakses dari mana saja di kode Anda.
- Anda dapat mengakses variabel global menggunakan
'global'
kata kunci, tetapi umumnya dianggap praktik yang baik untuk menghindari penggunaan variabel global sebanyak mungkin. - Variabel global dapat dimodifikasi dalam fungsi atau kelas, tetapi Anda harus menggunakan
'global'
Kata kunci untuk menunjukkan bahwa Anda memodifikasi variabel global, daripada membuat variabel lokal baru dengan nama yang sama. - Jika variabel global dan variabel lokal memiliki nama yang sama, variabel lokal lebih diutamakan dan variabel global tidak akan dapat diakses dalam fungsi atau kelas.
- Anda dapat menggunakan
'Globals ()'
fungsi untuk mendapatkan kamus dari semua variabel global dan nilainya, dan'penduduk setempat ()'
fungsi untuk mendapatkan kamus dari semua variabel lokal dan nilainya. - Penting untuk memahami ruang lingkup variabel dalam kode Anda, karena variabel dengan nama yang sama dalam lingkup yang berbeda mungkin memiliki nilai yang berbeda.
- Untuk menghindari kebingungan dan membuat kode Anda lebih mudah dipahami, umumnya disarankan untuk menggunakan nama variabel deskriptif dan unik dan untuk menghindari penggunaan variabel global jika memungkinkan.
Variabel global Python
Untuk mendefinisikan variabel global dalam python, cukup tetapkan nilai ke variabel di luar fungsi atau definisi kelas apa pun. Misalnya:
x = 10 y = "halo, dunia!"Z = [1, 2, 3]123 | x = 10y = "halo, dunia!"Z = [1, 2, 3] |
Anda kemudian dapat mengakses variabel -variabel ini dari mana saja dalam kode Anda hanya dengan merujuk pada nama mereka. Misalnya:
def some_function (): print (x) print (y) print (z) some_function ()123456 | def some_function (): print (x) print (y) print (z) some_function () |
Ini akan menghasilkan nilai variabel global x, y, dan z dalam fungsi 'beberapa fungsi'
.
Penting untuk dicatat bahwa variabel global dapat dimodifikasi dalam fungsi atau kelas, sama seperti variabel lainnya. Namun, ini dapat menyebabkan efek samping yang tidak diinginkan, karena perubahan akan terlihat oleh bagian lain dari program ini juga. Untuk menghindari hal ini, umumnya merupakan ide yang baik untuk menghindari memodifikasi variabel global secara langsung, dan alih-alih menggunakannya sebagai konstanta baca saja.
Visibilitas variabel global Python dalam fungsi
Anda juga dapat mendefinisikan variabel global dalam fungsi atau kelas, tetapi Anda harus menggunakan kata kunci global untuk menunjukkan bahwa Anda mengacu pada versi global dari variabel tersebut. Misalnya:
x = 10 def some_function (): global x x = 20 print (x) # output: 10 some_function () print (x) # output: 20123456789 | x = 10 def some_function (): global x x = 20 print (x) # output: 10some_function () print (x) # output: 20 |
Dalam contoh ini, variabel global 'X'
didefinisikan di luar fungsi dan awalnya diatur ke '10'. Dalam fungsi 'beberapa fungsi'
, itu 'global'
kata kunci digunakan untuk menunjukkan bahwa 'X'
variabel yang dimodifikasi adalah versi global dari variabel, bukan versi lokal. Akibatnya, nilai 'X'
dimodifikasi menjadi '20', dan perubahan ini terlihat di luar fungsi juga.
Kesimpulan
Secara umum dianggap sebagai praktik yang baik untuk menghindari penggunaan variabel global sedapat mungkin, karena mereka dapat membuat kode Anda lebih sulit untuk dipahami dan dipelihara. Sebaliknya, seringkali merupakan ide yang lebih baik untuk memberikan nilai sebagai argumen ke fungsi atau menyimpannya di objek atau struktur data yang dapat dilewati sesuai kebutuhan. Ini dapat membantu mengurangi kompleksitas kode Anda dan membuatnya lebih mudah untuk bernalar.
semoga membantu! Beri tahu saya jika Anda memiliki pertanyaan atau perlu klarifikasi lebih lanjut.