Hàm property() trong Python
Cú pháp hàm property() trong Python
Cú pháp của hàm property() trong Python là:
property(fget=None, fset=None, fdel=None, doc=None)Tham số của hàm property()
Hàm property() nhận các tham số sau:
- fget (tùy chọn): Chức năng nhận giá trị thuộc tính, mặc định là None
- fset (tùy chọn): Chức năng thiết lập giá trị thuộc tính, mặc định là None
- fdel (tùy chọn): Chức năng xóa giá trị thuộc tính, mặc định là None
- doc (tùy chọn): Một chuỗi chứa tài liệu (docstring) cho thuộc tính, mặc định là None

Giá trị trả về từ hàm property()
property() trả về thuộc tính property từ các getter, setter và deleter đã được thiết lập.
Nếu không có đối số nào, property() trả về một thuộc tính cơ sở không chứa bất kỳ getter, setter hay deleter nào.
Nếu doc không được cung cấp, property() sẽ lấy docstring của getter.
Ví dụ 1: Tạo thuộc tính với getter, setter và deleter
# Giải thích hàm property()
class Quantrimang:
def __init__(self, value):
self._value = value
# getting the values
def getValue(self):
print('Getting value')
return self._value
# setting the values
def setValue(self, value):
print('Setting value to ' + value)
self._value = value
# deleting the values
def delValue(self):
print('Deleting value')
del self._value
value = property(getValue, setValue, delValue, )
# passing the value
x = Quantrimang('QuanTriMang.com')
print(x.value)
x.value = 'QTM'
del x.value Khi chạy chương trình, kết quả thu được là:
Getting value
QuanTriMang.com
Setting value to QTM
Deleting valueỞ đây, _value được dùng như một biến số riêng, lưu trữ tên của lớp Quantrimang.
Đồng thời chúng ta cũng thiết lập:
- Phương thức getter getValue để nhận tên của đối tượng
- Phương thức setter setValue để thiết lập tên của đối tượng
- Phương thức deleter delValue để xóa tên của đối tượng
Bây giờ, chúng ta thiết lập tên thuộc tính property mới bằng hàm property().
Trong đoạn code ở trên, sử dụng x.value sẽ gọi các hàm getValue làm getter, setValue làm setter và delValue làm deleter. Tất cả các hàm đều được thực thi và cho ra những gì như chúng ta thấy trong ô kết quả.
Ví dụ 2: Sử dụng @property decorator
Thay vì sử dụng hàm property(), bạn có thể sử dụng @property decorator trên Python để thiết lập getter, setter và deleter.
Dưới đây là đoạn code ví dụ:
class QTM:
def __init__(self, name):
self._name = name
@property
def name(self):
print('Lấy tên')
return self._name
@name.setter
def name(self, value):
print('Thiết lập tên thành ' + value)
self._name = value
@name.deleter
def name(self):
print('Xóa tên')
del self._name
p = QTM('Quantrimang.com')
print('Tên là:', p.name)
p.name = 'Quantrimang'
del p.nameKhi chạy chương trình, kết quả thu được là:
Lấy tên
Tên là: Quantrimang.com
Thiết lập tên thành Quantrimang
Xóa tênỞ đây, chúng ta sử dụng @property decorator thay cho hàm property().
Đầu tiên, chúng ta chỉ định phương thức name() cũng là một thuộc tính của lớp QTM. Điều này được thực hiện bằng cách sử dụng @property đằng trước getter như bạn thấy trong ô code.
Tiếp theo, chúng ta sử dụng tên thuộc tính để chỉ định setter và deleter.
Điều này được thực hiện bằng cách sử dụng @name.setter cho phương thức setter và @name.deleter cho phương thức deleter.
Hãy lưu ý rằng chúng ta đã sử dụng cùng một phương thức name với các định nghĩa khác nhau để chỉ định getter, setter và deleter.
Bây giờ, bất cứ khi nào chúng ta sử dụng hàm p.name, nó sẽ gọi hàm getter, setter và deleter thích hợp, tạo ra kết quả như trên.
Bạn nên đọc
-
Từ khóa global trong Python
-
Hàm slice() trong Python
-
Làm việc với File trong Python
-
Viết chương trình tính căn bậc hai của một số bằng Python
-
Hàm object() trong Python
-
Hàm range() trong Python
-
Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python
-
Hàm reversed() trong Python
-
Hàm map() trong Python
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Code Fairy Tail Fierce Fight mới nhất và cách nhập code
3 ngày -

Cách chạy ứng dụng Windows trên Android bằng Winlator
3 ngày -

19/5 là ngày gì? Ngày 19 tháng 5 năm 1890 là ngày gì?
3 ngày 6 -

5 cách lấy kim cương miễn phí trong Free Fire
3 ngày 3 -

Cách đổi mật khẩu truy cập Ultraviewer
3 ngày -

Cách dùng biểu tượng cảm xúc trong Đấu Trường Chân Lý
3 ngày -

Code Sự tiến hóa tối thượng: Saiyan mới nhất và cách nhập code
3 ngày -

Proxy và VPN khác gì nhau?
3 ngày -

Hướng dẫn nâng cấp nhóm Zalo lên cộng đồng
3 ngày -

Lời chúc Tết Đoan ngọ mùng 5/5 âm lịch, thơ hay về Tết Đoan Ngọ
3 ngày 1
Hướng dẫn AI
Học IT
Hàm Excel