Atribut kelas vs. instance

Pengantar Pemrograman Berorientasi Objek di Python

George Boorman

Curriculum Manager, DataCamp

Prinsip inti OOP

Enkapsulasi:

  • Menggabungkan data dan metode

Pewarisan:

  • Memperluas fungsionalitas kode yang ada

Polimorfisme:

  • Menciptakan antarmuka seragam
Pengantar Pemrograman Berorientasi Objek di Python

Atribut tingkat instance

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

emp1 = Employee("Teo Mille", 50000) 
emp2 = Employee("Marta Popov", 65000)
  • Nilai name dan salary spesifik untuk tiap objek
  • self menetapkan ke objek
Pengantar Pemrograman Berorientasi Objek di Python

Atribut tingkat kelas

  • Data dibagi oleh semua instance dalam satu kelas

 

  • Definisikan atribut_kelas di badan class

 

  • Seperti “variabel global” di dalam kelas
Pengantar Pemrograman Berorientasi Objek di Python

Menerapkan atribut tingkat kelas

class Employee:
    # Definisikan atribut kelas
    # Tanpa sintaks self.
    MIN_SALARY = 30000 

def __init__(self, name, salary): self.name = name # Gunakan nama kelas # untuk mengakses atribut kelas if salary >= Employee.MIN_SALARY: self.salary = salary
else: self.salary = Employee.MIN_SALARY
  • MIN_SALARY dibagi oleh semua instance
  • Jangan gunakan self untuk mendefinisikan atribut kelas
  • Konvensinya huruf kapital
  • Gunakan ClassName.ATTR_NAME untuk mengakses nilai atribut kelas
Pengantar Pemrograman Berorientasi Objek di Python

Atribut tingkat kelas

class Employee:
    # Definisikan atribut kelas
    MIN_SALARY = 30000    

def __init__(self, name, salary): self.name = name # Gunakan nama kelas # untuk mengakses atribut kelas if salary >= Employee.MIN_SALARY: self.salary = salary else: self.salary = Employee.MIN_SALARY
emp1 = Employee("John", 40000)
print(emp1.MIN_SALARY)
30000
emp2 = Employee("Jane", 60000)
print(emp2.MIN_SALARY)
30000
Pengantar Pemrograman Berorientasi Objek di Python

Mengubah atribut tingkat kelas

emp1 = Employee("John", 40000)
emp2 = Employee("Jane", 60000)

# Perbarui MIN_SALARY milik emp1 emp1.MIN_SALARY = 50000
# Cetak MIN_SALARY untuk keduanya print(emp1.MIN_SALARY) print(emp2.MIN_SALARY)
50000
30000
Pengantar Pemrograman Berorientasi Objek di Python

Mengubah atribut tingkat kelas

  • MIN_SALARY dibuat di definisi kelas

 

  • Memperbarui MIN_SALARY pada objek tidak mengubah nilai di definisi kelas

 

  • Keamanan — mencegah perubahan pada perangkat lunak!
Pengantar Pemrograman Berorientasi Objek di Python

Mengapa memakai atribut kelas?

Konstanta global terkait kelas

 

  • Nilai minimum dan maksimum untuk atribut
    • Mencegah data tidak valid
  • Nilai dan konstanta umum, mis. host, port untuk kelas Database
    • Hindari pengulangan saat membuat objek
Pengantar Pemrograman Berorientasi Objek di Python

Ayo berlatih!

Pengantar Pemrograman Berorientasi Objek di Python

Preparing Video For Download...