Mengelola akses data: atribut privat

Pemrograman Berorientasi Objek di Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Semua data kelas bersifat publik

kita semua sudah dewasa di sini

Pemrograman Berorientasi Objek di Python

Membatasi akses

  • Konvensi penamaan
  • Gunakan @property untuk menyesuaikan akses
  • Menimpa __getattr__() dan __setattr__()
Pemrograman Berorientasi Objek di Python

Konvensi penamaan: atribut internal

obj._att_name, obj._method_name()

  • Dimulai dengan satu _ → "internal"
  • Bukan bagian dari API publik
  • Sebagai pengguna kelas: "jangan sentuh ini"
  • Sebagai pengembang kelas: gunakan untuk detail implementasi, fungsi pembantu..

df._is_mixed_type , datetime._ymd2ord()

Pemrograman Berorientasi Objek di Python

Konvensi penamaan: atribut pseudoprivat

obj.__attr_name , obj.__method_name()

  • Dimulai tetapi tidak diakhiri dengan __ → "privat"
  • Tidak diwariskan
  • Pengacakan nama: obj.__attr_name diinterpretasikan sebagai obj._MyClass__attr_name
  • Digunakan untuk mencegah benturan nama dalam kelas turunan

 

Leading dan trailing __ hanya digunakan untuk metode bawaan Python (__init__(),__repr__())!

Pemrograman Berorientasi Objek di Python

Mari berlatih!

Pemrograman Berorientasi Objek di Python

Preparing Video For Download...