Trung BìnhPython iconPython

`@property` decorator dùng thế nào?

@property cho phép define getter/setter/deleter cho attribute, truy cập như attribute thường nhưng có validation logic.

python
class Temperature:
    def __init__(self, celsius: float):
        self._celsius = celsius

    @property
    def celsius(self) -> float:
        return self._celsius

    @celsius.setter
    def celsius(self, value: float):
        if value < -273.15:
            raise ValueError("Below absolute zero!")
        self._celsius = value

    @property
    def fahrenheit(self) -> float:  # Read-only derived property
        return self._celsius * 9/5 + 32

t = Temperature(25)
t.celsius = 30      # Gọi setter tự động
print(t.fahrenheit) # 86.0

Xem toàn bộ Python cùng filter theo level & chủ đề con.

Mở danh sách Python