Daftar Referensi Python
property() membuat atribut terkelola melalui fungsi getter, setter, dan deleter tanpa mengubah cara atribut diakses.
Sintaks
property(fget=None, fset=None, fdel=None, doc=None)
Parameter
| Parameter | Wajib? | Keterangan |
|---|---|---|
fget |
Tidak | Fungsi untuk membaca nilai |
fset |
Tidak | Fungsi untuk mengubah nilai |
fdel |
Tidak | Fungsi untuk menghapus nilai |
doc |
Tidak | Docstring untuk property |
Nilai balik: objek property.
Contoh
class Lingkaran:
def __init__(self, radius):
self.radius = radius
@property
def diameter(self):
return self.radius * 2
print(Lingkaran(5).diameter)
Output:
10
Contoh Lainnya
Property dengan setter
class Stok:
def __init__(self):
self._jumlah = 0
@property
def jumlah(self):
return self._jumlah
@jumlah.setter
def jumlah(self, nilai):
self._jumlah = max(0, nilai)
stok = Stok()
stok.jumlah = -5
print(stok.jumlah)
Output:
0
Memakai property() langsung
class Produk:
def __init__(self, harga):
self._harga = harga
def ambil_harga(self):
return self._harga
harga = property(ambil_harga)
print(Produk(12000).harga)
Output:
12000
Property hasil perhitungan
class Suhu:
def __init__(self, celsius):
self._celsius = celsius
@property
def fahrenheit(self):
return self._celsius * 9 / 5 + 32
print(Suhu(25).fahrenheit)
Output:
77.0
Kesalahan Umum
- Property tanpa setter menghasilkan
AttributeErrorsaat diisi. - Getter tetap dapat menjalankan code; hindari proses berat yang tidak terduga.
- Simpan nilai dasar di atribut berbeda agar getter tidak memanggil dirinya sendiri tanpa akhir.
Pelajari Lebih Lanjut
- Referensi: Class dan object · getattr() · setattr()
- Buku Belajar Python untuk Pemula: Bab 16
