파이썬프로그래밍

파이썬 @property, getter, setter

ROSEV 2021. 7. 15. 20:15

@property

클래스 내 메소드를 특성처럼 사용하기 위해 해당 메소드 위에 넣는 것

 

Getter

: 데이터를 읽어주는 매서드

Setter

: 데이터를 변경해주는 매서드

 

@property를 사용하는 목적

  • 변수의 제어 기능
  • getter 함수를 대신 용이하게 사용

Python with @property, setter

class Person:
    def __init__(self, first_name, last_name, age):
        self.first_name = first_name
        self.last_name = last_name
        self.age = age
    
    @property
    def full_name(self):
    	return self.first_name + ' ' + self.last_name

	@full_name.setter
	def full_name(self, new_full_name):
		first_name, last_name = new_full_name.split()
		self.first_name = first_name
		self.last_name = last_name


wow = Person('w', 'ow', 20)
print(wow.first_name)
print(wow.last_name)
print(wow.full_name)
print(wow.age)

wow.age = 30
wow.first_name = 'wow2'

print(wow.first_name)
print(wow.last_name)
print(wow.full_name)
print(wow.age)