Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melaksanakan Getters dan Setters secara Python?

Bagaimana untuk Melaksanakan Getters dan Setters secara Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 11:50:17434semak imbas

How to Pythonically Implement Getters and Setters?

Amalan Pythonic untuk Getters dan Setters

Apabila bekerja dengan kaedah getter dan setter dalam Python, adalah penting untuk menggunakan pendekatan Pythonic yang sejajar dengan amalan terbaik bahasa itu. Daripada menggunakan kaedah get_property() dan set_property() eksplisit, yang memerlukan pelaksanaan manual:

def set_property(property, value):  
def get_property(property):  

Atau tetapkan dan dapatkan atribut secara terus melalui sifat objek:

object.property = value  
value = object.property

Kaedah Pythonic pilihan menggunakan penghias hartanah untuk mentakrifkan getter dan setter. Teknik ini menyediakan antara muka yang ringkas dan intuitif untuk mengakses pembolehubah contoh.

Penghias Harta:

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        print("getter of x called")
        return self._x

    @x.setter
    def x(self, value):
        print("setter of x called")
        self._x = value

    @x.deleter
    def x(self):
        print("deleter of x called")
        del self._x

Penggunaan:

Buat contoh daripada kelas:

c = C()

Tetapkan harta:

c.x = 'foo'  # setter called

Ambil semula harta:

foo = c.x    # getter called

Padamkan harta:

del c.x      # deleter called

Dengan menggunakan penghias harta Python, anda boleh mencapai fungsi getter dan setter dengan sintaks yang lebih Pythonic dan elegan, mengekalkan kejelasan kod dan memudahkan pengurusan harta.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Getters dan Setters secara Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn