Decorators
@property
Makes a function works like some variable.
class House():
@property
def temperature(self):
    return self._temperature*10
@temperature.setter
def temperature(self, temp):
    self._temprature = some_func(temp)
    
#use this as
house = House()
temp = house.temperature
house.temperature = 50.0@classmethod and @staticmethod
# Python program to demonstrate  
# use of a class method and static method. 
from datetime import date 
  
class Person: 
    def __init__(self, name, age): 
        self.name = name 
        self.age = age 
      
    # a class method to create a  
    # Person object by birth year. 
    @classmethod
    def fromBirthYear(cls, name, year): 
        return cls(name, date.today().year - year) 
      
    # a static method to check if a 
    # Person is adult or not. 
    @staticmethod
    def isAdult(age): 
        return age > 18
  
person1 = Person('mayank', 21) 
person2 = Person.fromBirthYear('mayank', 1996) 
  
print (person1.age) 
print (person2.age) 
  
# print the result 
print (Person.isAdult(22)) See how you can create class instance through some other logic using @classmethod.
Last updated
