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)

Coba di IDE

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)

Coba di IDE

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)

Coba di IDE

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)

Coba di IDE

Output:

77.0

Kesalahan Umum

  • Property tanpa setter menghasilkan AttributeError saat 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