Dalam Python, deskriptor ialah mekanisme berkuasa yang membolehkan objek memintas akses dan pengubahsuaian atribut. Untuk memahami fungsinya, mari kita teliti kod yang disediakan:
class Celsius(object): def __init__(self, value=0.0): self.value = value def __get__(self, instance, owner): return self.value def __set__(self, instance, value): self.value = float(value) class Temperature(object): celsius = Celsius()
S1: Mengapa saya memerlukan kelas deskriptor?
A1: Kelas deskriptor merangkumi logik di sebalik memintas akses dan pengubahsuaian atribut. Dengan mengasingkan logik ini daripada kelas yang menggunakannya, anda boleh menggunakannya semula dan menyediakan antara muka yang konsisten untuk mengakses dan mengubah suai atribut.
S2: Apakah contoh dan pemilik dalam __get__?
A2:
S3: Bagaimanakah saya akan memanggil/menggunakan ini contoh?
A3: Anda boleh mengakses dan mengubah suai atribut celsius seperti berikut:
temp = Temperature() temp.celsius # calls `celsius.__get__` and returns the current Celsius value temp.celsius = 25.0 # calls `celsius.__set__` to update the Celsius value
Nota: Jika anda cuba mengakses Temperature.celsius secara langsung, instance akan menjadi Tiada.
Atas ialah kandungan terperinci Bagaimanakah Kaedah Python Deskriptor\' `__get__` dan `__set__` Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!