getter와 setter을 좀더 파이썬적으로 작성하는 방법이 있다. @을 사용하면 같은 이름으로 getter과 setter을 사용할 수 있다.

class SoftwareEngineer:
    def __init__(self):
        self._salary = None

    #getter
    @property
    def salary(self):
        return self._salary
    
    #setter
    @salary.setter
    def salary(self, value):
        self._salary = value
    

se = SoftwareEngineer()

se.salary = 6000

print(se.salary)

추가적으로 삭제하는 @를 만든다. 그러면 자료를 설정, 가져오기, 삭제 모두 할 수 있다.

class SoftwareEngineer:
    def __init__(self):
        self._salary = None

    #getter
    @property
    def salary(self):
        return self._salary
    
    #setter
    @salary.setter
    def salary(self, value):
        self._salary = value
    
    @salary.deleter
    def salary(self):
        del self._salary
    

se = SoftwareEngineer()

se.salary = 6000

print(se.salary)

del se.salary