Pembinaan properti () mengembalikan atribut harta tanah.
Sintaksnya property()adalah:
harta tanah (fget = Tiada, fset = Tiada, fdel = Tiada, dokumen = Tiada)
Bacaan yang Disyorkan: Python @property: Bagaimana Menggunakannya dan Mengapa?
harta tanah () Parameter
Yang property()mengambil masa empat parameter pilihan:
- fget (pilihan) - Fungsi untuk mendapatkan nilai atribut. Lalai untuk
None. - fset (pilihan) - Fungsi untuk menetapkan nilai atribut. Lalai untuk
None. - fdel (pilihan) - Fungsi untuk menghapus nilai atribut. Lalai untuk
None. - doc (pilihan) - Rentetan yang mengandungi dokumentasi (docstring) untuk atribut. Lalai untuk
None.
Nilai pulangan dari harta tanah ()
property() mengembalikan atribut harta tanah dari pemberi, pengatur dan penghapus yang diberikan.
- Sekiranya tidak ada argumen yang diberikan,
property()kembalikan atribut harta tanah yang tidak mengandungi getter, setter atau penghapus. - Sekiranya dokumen tidak disediakan,
property()ambil dokstring fungsi getter.
Contoh 1: Buat atribut dengan getter, setter, dan deleter
class Person: def __init__(self, name): self._name = name def get_name(self): print('Getting name') return self._name def set_name(self, value): print('Setting name to ' + value) self._name = value def del_name(self): print('Deleting name') del self._name # Set property to use get_name, set_name # and del_name methods name = property(get_name, set_name, del_name, 'Name property') p = Person('Adam') print(p.name) p.name = 'John' del p.name
Pengeluaran
Mendapat nama Nama adalah: Adam Menetapkan nama kepada John Menghapus nama
Di sini, _name digunakan sebagai pemboleh ubah peribadi untuk menyimpan nama Orang.
Kami juga menetapkan:
- kaedah
get_name()mendapatkan untuk mendapatkan nama orang itu, - kaedah setter
set_name()untuk menetapkan nama orang itu, - kaedah penghapus
del_name()untuk memadamkan nama orang itu.
Sekarang, kami menetapkan nama atribut properti baru dengan memanggil property()kaedah.
Seperti yang ditunjukkan dalam program ini, rujukan p.namedalaman panggilan get_name()sebagai getter, set_name()sebagai penetap dan del_name()sebagai Deleter melalui output hadir yang dicetak di dalam kaedah.
Contoh 2: Menggunakan penghias @property
Daripada menggunakan property(), anda boleh menggunakan penghias Python @propertyuntuk menetapkan pengambil, pengatur dan penghapus.
class Person: def __init__(self, name): self._name = name @property def name(self): print('Getting name') return self._name @name.setter def name(self, value): print('Setting name to ' + value) self._name = value @name.deleter def name(self): print('Deleting name') del self._name p = Person('Adam') print('The name is:', p.name) p.name = 'John' del p.name
Pengeluaran
Mendapat nama Nama adalah: Adam Menetapkan nama kepada John Menghapus nama
Di sini, daripada menggunakan property(), kami menggunakan @propertypenghias.
Pertama, kami menyatakan bahawa name()kaedah itu juga merupakan sifat orang. Ini dilakukan dengan menggunakan @propertykaedah sebelum mendapatkan seperti yang ditunjukkan dalam program.
Seterusnya, kami menggunakan nama atribut untuk menentukan setter dan penghapus.
Ini dilakukan dengan menggunakan @name.setterkaedah setter dan @name.deleterkaedah penghapusan.
Perhatikan, kami telah menggunakan kaedah yang sama name()dengan definisi yang berbeza untuk menentukan getter, setter, dan penghapus.
Sekarang, setiap kali kita menggunakan p.name, ia secara dalaman memanggil getter, setter, dan deleter yang sesuai seperti yang ditunjukkan oleh output yang dicetak yang terdapat di dalam kaedah ini.








