Global dan Local Scope
Sebelumnya sudah di bahas tentang function. Semua yang ada di dalam function akan dihapus ketika function dipanggil. Inilah yang membedakan variable di dalam function dan di luar function. Variable di dalam function disebut Local Variable, sedangkan variable di luar function disebut Global Variable.
Perhatikan codingan berikut, mengakses variable setelah function di panggil akan mengeluarkan error
def test():
language = 'Python'
print(language)
test()
print(language)
Global variable dapat diakses oleh function didalamnya dengan code sebagai berikut
def test():
print(language)
language = 'Python'
test()
Local variable akan terhapus setelah function di panggil, dan global variable akan terhapus setelah keseluruhan program di jalankan. Hati - hati ketika menamakan variable sama di Local maupun Global. Hal ini akan membuat Anda kebingungan dari mana asal data yang di proses. Berikut contoh codenya
def test():
language = 'Python'
print(language)
language = 'Java'
#andaikan code Anda ada ratusan line dan lupa bahwa variable `language` sudah digunakan
#alih alih mengeluarkan `Java` yang ada mengeluarkan `Python`
test()
Local variable diubah menjadi global variable
Membuat local variable menjadi global variable dapat dilakukan dengan syntax global. Berikut contoh codenya
def test():
global language
language = 'Python'
print(language)
test()
print(language)
Perhatikan apabila ada dua global variable, maka global variable yang di definisikan setelah function yang akan diproses. Berikut contoh codenya
def test():
global language
language = 'Python'
print(language)
test()
language = 'Java'
print(language)
Penggunaan syntax global didalam function membuat code Anda sulit dibaca, bayangkan apabila Anda sudah membuat banyak function dengan global syntax lalu Anda tidak sengaja membuat nama variable yang sama dengan salah satu function anda. Anda pun akan sulit menemukan sumber data dan bertanya tanya kenapa codingan anda berjalan dengan proses berbeda.