Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Melaksanakan Pengambil dan Penetap Secara Python?

Bagaimanakah Saya Boleh Melaksanakan Pengambil dan Penetap Secara Python?

Susan Sarandon
Lepaskan: 2024-12-14 17:46:11
asal
827 orang telah melayarinya

How Can I Pythonically Implement Getters and Setters?

Apakah Cara Pythonic untuk Menggunakan Getters dan Setters?

Menggunakan getter dan setter menawarkan cara yang mudah untuk mengawal akses kepada atribut peribadi dalam Python . Berikut ialah beberapa pendekatan yang biasa digunakan:

Pendekatan Berasaskan Kaedah:

Anda boleh mencipta kaedah getter dan setter yang berasingan, seperti yang ditunjukkan di bawah:

def set_property(property, value):  
def get_property(property): 
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini tidak dianggap sangat Pythonic. Cara yang lebih digemari ialah menggunakan:

Manipulasi Atribut Objek:

Anda boleh terus memberikan nilai kepada atribut objek menggunakan notasi titik:

object.property = value  
value = object.property
Salin selepas log masuk

Pendekatan ini mudah digunakan dan difahami, tetapi ia tidak menawarkan sebarang pengkapsulan atau kawalan ke atas atribut akses.

Sifat Python:

Cara paling Pythonic untuk melaksanakan getter dan setter ialah menggunakan sifat. Ini membolehkan anda mentakrifkan kaedah getter, setter dan deleter dalam satu baris kod:

class C(object):
    @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

c = C()
c.x = 'foo'  # setter called
foo = c.x    # getter called
del c.x      # deleter called
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pengambil dan Penetap Secara Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan