class Car():
def __init__(self):
self._seat = None
@property # getter
def seat(self):
return self._seat
@seat.setter # setter
def seat(self, seat):
self._seat = seat
c = Car()
c.seat = 6
print(c.seat)
# Python @property decorator
class Foo:
def __init__(self, my_word):
self._word = my_word
@property
def word(self):
return self._word
# word() is now a property instead of a method
print(Foo('ok').word) # ok
class Bar:
def __init__(self, my_word):
self._word = my_word
def word(self):
return self._word
print(Bar('ok').word()) # ok # word() is a method
# using property class
class Celsius:
def __init__(self, temperature=0):
self.temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
# getter
def get_temperature(self):
print("Getting value...")
return self._temperature
# setter
def set_temperature(self, value):
print("Setting value...")
if value < -273.15:
raise ValueError("Temperature below -273.15 is not possible")
self._temperature = value
# creating a property object
temperature = property(get_temperature, set_temperature)
human = Celsius(37)
print(human.temperature)
print(human.to_fahrenheit())
human.temperature = -300
# using property class
class Celsius:
def __init__(self, temperature=0):
self.temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
# getter
def get_temperature(self):
print("Getting value...")
return self._temperature
# setter
def set_temperature(self, value):
print("Setting value...")
if value < -273.15:
raise ValueError("Temperature below -273.15 is not possible")
self._temperature = value
# creating a property object
temperature = property(get_temperature, set_temperature)