Enkapsulasi Python

Enkapsulasi Python

Perkenalan

Enkapsulasi adalah salah satu aspek mendasar dari pemrograman berorientasi objek. Ini memungkinkan programmer kontrol yang lebih baik tentang bagaimana data mengalir dalam program mereka, dan melindungi data itu. Enkapsulasi juga membuat objek menjadi bagian yang lebih mandiri dan berfungsi secara independen.

Konsep enkapsulasi dibangun di atas apa yang Anda lakukan dalam dua pemandu terakhir dengan kelas dan konstruktor. Konstruktor biasanya biasanya digunakan dalam hubungan erat dengan enkapsulasi dan sebenarnya membantu dalam membuat enkapsulasi bekerja dengan mulus.

Pengubah akses

Sebelum Anda dapat memanfaatkan enkapsulasi, Anda harus memahami bagaimana Python membatasi akses ke data yang disimpan dalam variabel dan metode.

Python memiliki tingkat pembatasan yang berbeda yang mengontrol bagaimana data dapat diakses dan dari mana. Variabel dan metode dapat bersifat publik, pribadi, atau dilindungi. Penunjukan tersebut dilakukan dengan jumlah garis bawah sebelum variabel atau metode.

Publik

Setiap variabel dan metode yang Anda lihat sejauh ini dengan pengecualian konstruktor telah umum. Variabel dan metode publik dapat dimodifikasi secara bebas dan dijalankan dari mana saja, baik di dalam maupun di luar kelas. Untuk membuat variabel atau metode publik, jangan gunakan garis bawah.

Pribadi

Penunjukan pribadi hanya memungkinkan variabel atau metode untuk diakses dari dalam kelas atau objeknya sendiri. Anda tidak dapat memodifikasi nilai variabel pribadi dari luar kelas. Variabel dan metode pribadi didahului oleh dua garis bawah. Lihatlah contoh di bawah ini.

__make = 'dodge'

Coba gunakan kelas itu dari sebelumnya. Atur variabel dalam konstruktor ke pribadi. Kemudian cobalah mencetak salah satu variabel setelah suatu objek telah dipakai.

Mobil kelas (objek): def __init __ (self, make = 'ford', model = 'pinto', tahun = '1971', mileage = '253812', color = 'oranye'): self.__make = buat diri.__model = Model Self.__year = tahun diri.__mileage = jarak tempuh diri.__color = color def move_forward (self, speed): cetak (" %s Anda bergerak maju pada %s" %(self.__model, speed)) def move_backward (self, speed): cetak ("bergerak mundur pada % s" % speed) mycar = car () cetak (mycar.__model) 

Anda akan menerima pesan kesalahan yang menyatakan bahwa variabel tidak ada. Ini karena variabel itu pribadi. Sekarang coba jalankan maju kedepan metode.

mobil saya.maju kedepan

Semuanya berfungsi dengan baik. Itu karena variabel sedang diakses dengan metode dalam kelas, bukan secara eksternal.

Ada tangkapan di sini. Python tidak benar -benar menangani variabel yang dilindungi serta bahasa berorientasi objek lainnya. Alih -alih benar -benar melindungi variabel, itu mengubah nama mereka di dalam penerjemah. Ini memungkinkan salinan variabel yang berbeda untuk dibuat dan ada. Coba ubah salah satu variabel yang dilindungi di Anda mobil saya objek dan mencetaknya.

mobil saya.__model = cetak 'mustang' (mycar.__model) 

Sekarang, sepertinya berhasil, tetapi apa yang telah Anda cetak adalah salinan aneh dari variabel yang dilindungi. Coba gunakan maju kedepan metode lagi.

mobil saya.maju kedepan

Itu mencetak nilai asli __model. Variabel ada secara mandiri. Anda dapat mengilustrasikan ini lebih lanjut dengan mencetak objek sebagai kamus. Anda akan melihat dua variabel yang berbeda.

Cetak (Mycar.__dict__)

Terlindung

Variabel dan metode yang dilindungi sangat mirip dengan yang pribadi. Anda mungkin tidak akan sering menggunakan variabel atau metode yang dilindungi, tetapi masih ada baiknya mengetahui apa adanya. Variabel yang dilindungi hanya dapat diakses oleh kelasnya sendiri dan kelas apa pun yang berasal darinya. Itu lebih merupakan topik untuk nanti, tetapi ketahuilah bahwa jika Anda menggunakan kelas sebagai dasar dari yang lain, variabel yang dilindungi mungkin merupakan pilihan yang baik. Variabel yang dilindungi dimulai dengan satu garis bawah.

Apa itu enkapsulasi

Jadi, sekarang Anda tahu cara kerja pengubah akses, bagian selanjutnya ini akan tampak cukup jelas. Enkapsulasi adalah proses menggunakan variabel pribadi dalam kelas untuk mencegah modifikasi data yang tidak disengaja atau berpotensi berbahaya. Dengan berisi dan melindungi variabel dalam suatu kelas, ini memungkinkan kelas dan objek yang dibuatnya berfungsi sebagai bagian independen, mandiri, yang berfungsi dalam mesin program itu sendiri.

Melalui variabel enkapsulasi dan metode tertentu hanya dapat berinteraksi dengan melalui antarmuka yang ditunjuk oleh kelas itu sendiri.

Setter dan getters

Antarmuka yang digunakan untuk berinteraksi dengan variabel yang dienkapsulasi umumnya disebut sebagai metode setter dan getter karena digunakan untuk mengatur dan mengambil nilai variabel. Karena metode ada di dalam kelas atau objek, mereka dapat mengakses dan memodifikasi variabel pribadi, sementara Anda tidak akan dapat melakukannya dari luar kelas. Saat Anda menanamkan mobil saya objek, Anda pada dasarnya menggunakan konstruktornya sebagai metode setter awal.

Coba tulis satu set metode untuk menetapkan dan mendapatkan nilai salah satu dari mobil saya variabel.

def set_model (self, new_model): self.__model = new_model def get_model (self): return self.__model 

Ini mungkin tampak seperti banyak pekerjaan ekstra, tapi itu benar -benar tidak sulit sama sekali. Secara umum, ini adalah bagaimana Anda harus menyusun kelas Anda dan bekerja dengan variabel kelas.

Menutup pikiran

Enkapsulasi adalah bagian utama dari pemrograman berorientasi objek. Ini adalah bagian besar dari apa yang membuat objek dalam pemrograman berkinerja lebih seperti objek fisik di dunia nyata. Ini juga berfungsi untuk melindungi data yang disimpan di dalam objek Anda dan memberikan kontrol dan konvensi untuk bagaimana Anda harus menangani aliran data masuk dan keluar dari kelas.

Latihan

  1. Membuat semua variabel di Mobil kelas pribadi.
  2. Cobalah mencetak satu dari luar kelas.
  3. Ubah maju kedepan metode untuk menggunakan variabel pribadi model, dan menyebutnya.
  4. Buat metode setter untuk salah satu variabel.
  5. Gunakan metode setter yang Anda buat untuk mengubah nilai variabel.
  6. Buat metode getter untuk variabel yang sama dengan metode setter.
  7. Gunakan metode Getter Anda untuk mengakses dan mencetak variabel itu.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Cara Membangun Aplikasi Tkinter Menggunakan Objek Berorientasi…
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Menguasai loop skrip bash
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Ubuntu 20.04 Panduan
  • Dasar -dasar matematika komputer: biner, desimal, heksadesimal, oktal