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