‫Oh, nak, ada beberapa kode di layar dan itu terlihat sangat membingungkan.
‫Ini adalah contoh fungsi yang sangat berbelit-belit dan rumit yang tidak akan pernah Anda tulis, tetapi akan
‫bagus untuk tujuan latihan.
‫Dan kita berbicara secara khusus tentang ini yang disebut nonlokal.
‫Ini sebenarnya kata kunci baru di Python tiga.
‫Dan seperti yang Anda lihat, Reppel saya bahkan tidak menyadarinya.
‫Jadi bahkan tidak disorot dengan warna biru karena ini adalah fitur baru.
‫Tetapi saya ingin berbicara dengan Anda tentang hal itu dan memberi tahu Anda apa fungsinya.
‫Kata kunci nonlocal key digunakan untuk merujuk ke bagian ini, parent local ini.
‫Ini adalah cara bagi kita untuk mengatakan, hei, saya ingin menggunakan variabel yang bukan variabel global, tetapi di
‫luar lingkup fungsi saya.
‫Jadi berdasarkan definisi itu, coba dan jeda video dan lihat apa yang mungkin dilakukan fungsi ini, saya
‫akan menjalankannya sekarang dan kemudian menelusuri kode jika saya mengklik jalankan.
‫Inilah yang kami dapatkan.
‫Jadi mari kita bicara tentang ini.
‫Kami memiliki fungsi luar dan kemudian kami memanggil fungsi luar.
‫Jadi interpreter Python akan pergi dan berkata, baiklah, kita memiliki variabel X yang lokal
‫ke fungsi luar.
‫Dan kemudian di dalam sini, kita akan mendefinisikan fungsi dalam, fungsi lain.
‫Dan di sini, bahkan sebelum kita menyebutnya, kita melompat ke baris sembilan dan berkata, baiklah, panggil fungsi dalam.
‫Kami kembali dan kami berkata, hei, baris lima, saya ingin menggunakan X nonlokal.
‫Hmm.
‫Apa artinya?
‫Nah, saya ingin menggunakan variabel X ini karena nonlokal.
‫Artinya, saya tidak ingin membuat variabel X baru.
‫Saya ingin melompat ke lingkup orang tua saya, lingkup orang tua saya lokal dan ambil apa pun yang Anda temukan di sana.
‫Selama itu bukan variabel global yang akan dilakukan oleh orang tua mana pun.
‫Saya ingin mengambil nonlokal itu.
‫Jadi sekarang X ini mengacu pada fungsi luar di sini.
‫Jadi, ketika kami mengatakan X sama dengan nonlokal, kami menetapkan string baru ini.
‫Dan mengganti lokal ini sehingga ketika kami mencetak berinteraksi, kami mendapatkan nonlocal, tetapi juga ketika kami
‫mencetak X luar, kami telah memodifikasi cakupan luar ini dengan kata kunci nonlocal.
‫Sehingga menjadi nonlokal juga.
‫Jika saya menghapus baris ini dan beri komentar dan saya klik jalankan.
‫Anda lihat perbedaannya sekarang kita memiliki inner nonlocal, tetapi outer local belum dimodifikasi karena
‫ini adalah variabel baru.
‫Sekali lagi, saya berpendapat bahwa ini sebenarnya membuat kode Anda lebih rumit dari yang seharusnya.
‫Jadi ada kasus khusus di mana Anda mungkin ingin menggunakan ini, tetapi jika Anda dapat mencoba membuat
‫kode Anda dapat diprediksi, di mana Anda dapat menghindari menggunakan hal-hal seperti nonlokal dan global, ingatlah, mereka ada karena suatu
‫alasan karena berguna dalam beberapa situasi.
‫Oleh karena itu, ingatlah, buat kode Anda dapat diprediksi, buat kode Anda bersih, dan sampai jumpa di
‫video berikutnya.