Cakupan suatu variabel mengacu pada area di mana suatu variabel dapat valid, karena ketika kita menggunakan suatu fungsi, beberapa variabel didefinisikan dalam program utama, dan beberapa lagi didefinisikan dalam fungsi yang dipanggil. Ketika program utama kita menggunakan fungsi tersebut Saat mendefinisikan suatu variabel, terjadi pengecualian. Mari kita perkenalkan variabel lokal dan variabel global.
Variabel lokal, seperti namanya, adalah variabel yang bekerja di area lokal. Jika suatu variabel didefinisikan dalam suatu fungsi, maka variabel tersebut hanya akan berfungsi di dalam fungsi tersebut. Jika variabel di dalam fungsi tersebut digunakan di luar fungsi tersebut, maka akan terjadi pengecualian .
Lihatlah contoh berikut:
deftest():data='variabel lokal'print('Output data di dalam fungsi:',data)test()print('Output data di program utama:',data)
Outputnya adalah:
Output data di dalam fungsi adalah: variabel lokal Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled/venv/Include/ts.py,line6,in<module>print('Output data di program utama: ',data)NameError:nama'data'tidak ditentukan
Karena data variabel didefinisikan di dalam fungsi, ketika kita menggunakan data variabel di program utama, akan ada masalah bahwa variabel yang diakses tidak ada. Oleh karena itu, kita harus memperhatikan fakta bahwa variabel yang didefinisikan di dalamnya fungsi adalah variabel lokal. Kecuali dinyatakan lain, mereka tidak akan diakses.
Kita juga dapat memahami variabel global dari arti literal yaitu variabel yang bertindak secara global. Beberapa siswa mungkin secara alami berpikir bahwa variabel global harus berupa variabel yang didefinisikan dalam program utama. Faktanya, variabel global juga dapat bertindak dalam fungsi dua cara menggunakan variabel global:
Cakupan variabel yang kita definisikan di program utama bersifat global, dan kita juga bisa menggunakan variabel ini secara langsung di fungsi yang ditentukan.
data='Variabel global data'deftest():print('Ini adalah variabel global yang berfungsi di dalam fungsi:',data)test()print('Ini adalah variabel global yang berfungsi di luar fungsi:',data)
Hasil keluaran:
Ini adalah variabel global yang bertindak dalam fungsi: data variabel global Ini adalah variabel global yang bertindak di luar fungsi: data variabel global
Metode ini adalah variabel global yang biasa kita gunakan. Variabel yang kita definisikan di program utama dapat digunakan langsung di dalam fungsi.
Variabel yang kita definisikan dalam fungsi juga dapat diprogram sebagai variabel global. Saat ini kita perlu menggunakan kata kunci global.
Pertama, mari kita lihat apa yang terjadi jika nama variabel global dan variabel lokal sama. Perhatikan contoh berikut:
data='Ini adalah variabel global data'print(data)deftest():data='Ini adalah variabel lokal data'print(data)test()print('Periksa lagi data variabel global:',data)
Outputnya adalah:
Berikut data variabel global. Berikut data variabel lokal. Periksa kembali data variabel global: Berikut data variabel global.
Dari contoh ini terlihat bahwa jika nama variabel global dan variabel lokal sama maka tidak mempengaruhi isi variabel global, namun jika kita ingin mengubah nilai variabel global pada fungsinya, maka kita harus menggunakan kata kunci global.
Perhatikan kembali contoh berikut ini:
data='Ini adalah variabel global data'print(data)deftest():globaldatadata='Ini adalah variabel lokal data'print(data)test()print('Periksa lagi data variabel global:',data)
Outputnya adalah:
Ini data variabel globalnya. Ini data variabel lokalnya. Cek lagi data variabel globalnya: Ini data variabel lokalnya.
Melalui kata kunci global, deklarasi lokal memberitahukan fungsi bahwa global adalah variabel global. Setelah dimodifikasi, semua variabel dalam global diubah. Kata kunci global dapat membuat suatu variabel menjadi variabel global.
Ketika tidak ada variabel yang dideklarasikan secara global, kita juga bisa menggunakan kata kunci global secara lokal untuk langsung mendeklarasikan suatu variabel sebagai variabel global. Kemudian variabel yang kita definisikan di fungsi juga bisa digunakan di program utama.
deftest():globaldatadata='Ini adalah data variabel yang dibuat secara lokal'print('Ini adalah keluaran dari fungsi:',data)test()print('Ini adalah keluaran dari program utama:',data)
Outputnya adalah:
Ini adalah output dari fungsi: Ini adalah data variabel yang dibuat secara lokal Ini adalah output dari program utama: Ini adalah data variabel yang dibuat secara lokal
Melalui contoh di atas, kita dapat memahami peran kata kunci global dalam mengendalikan variabel global. Selain itu, kita harus memperhatikan untuk menghindari nama variabel global dan variabel lokal sama ketika menulis program area, mereka akan mempengaruhi interaksi di antara mereka. Itu saja untuk bagian ini. Mari pelajari tentang fungsi anonim di bagian selanjutnya.