본문 바로가기

프로그래밍 언어/python

파이썬 프로퍼티(Property)

파이썬 속성 값을 숨기기 위해서 사용하는 setter, getter를 파이썬 프로퍼티를 이용하여 간단하게 구현할 수 있다

결론부터 말하자면, getter에는 @property를 붙이고, setter에는 @{속성이름}.setter 를 붙인다.

@{속성이름}.deleter를 사용하여 속성을 제거하는데 사용할 수도 있다.

 

<기본 코드>

class Person:
    def __init__(self):
        self.__age = 0
 
    def get_age(self):           # getter
        return self.__age
    
    def set_age(self, value):    # setter
        self.__age = value
 
james = Person()
james.set_age(20)
print(james.get_age())

<프로퍼티를 사용한 코드>

class Person:
    def __init__(self, first_name, last_name):
        self.__age = 0
 	
    @property
    def age(self):
    	return self._age;
    
    @age.setter
    def age(self, value):
    	self._age = value;
     
    @age.deleter
    def age(self):
    	print("Delete age property")
        del.self._age
        
    @property
    def full_name();
    	return self.first_name + " " + self.last.name
        
John = Person("John", "Doe", 20)
John.age = 20;
print(John.age)
>>> 20;
print(John.full_name)
>>>'John.Doe'
del John.age
print(John.age) # Error

- 함수로 표현되었지만, 함수이름(age)를 Person클래스 속성으로 사용되는 것과 동일하다

 

<다른 예시>

- .get_name()을 사용하지 않고, .get_name을 사용한다.

class Student:
    def __init__(self, first_name):
        self.first_name = first_name

    # define getter method
    @property
    def get_name(self):
        return self.first_name

# create a new Student object
student = Student("Monica")

# access the first name using data property
print(student.first_name)  # Monica

# access the first name using getter property
print(student.get_name)  # Monica

 

 

※ 비공개 속성, 메소드 사용하기

결론: 비공개 속성, 메소드를 사용하기 위해서는 앞에 작대기 두개를 붙인다

ex) 

self.__wallet

def __greeting(self):

 

https://dojang.io/mod/page/view.php?id=2374 

 

파이썬 코딩 도장: 34.3 비공개 속성 사용하기

앞에서 만든 Person 클래스에는 hello, name, age, address 속성이 있었습니다. class Person:     def __init__(self, name, age, address):         self.hello = '안녕하세요.'         self.name = name         self.age

dojang.io

 


https://dojang.io/mod/page/view.php?id=2476 

 

파이썬 코딩 도장: 47.13 프로퍼티 사용하기

다음과 같이 클래스에서 메서드를 통하여 속성의 값을 가져오거나 저장하는 경우가 있습니다. 이때 값을 가져오는 메서드를 getter, 값을 저장하는 메서드를 setter라고 부릅니다. getter_setter.py class

dojang.io

https://realpython.com/python-property/

 

Python's property(): Add Managed Attributes to Your Classes – Real Python

In this step-by-step tutorial, you'll learn how to create managed attributes, also known as properties, using Python's property() in your custom classes.

realpython.com

 

반응형

'프로그래밍 언어 > python' 카테고리의 다른 글

self의 의미  (0) 2023.03.27
Python에서 Call By Reference 구현하는 법  (0) 2023.03.13
Data Classes  (0) 2022.12.11
[OS] python 과 실행파일  (0) 2021.04.09
경로 유틸리티  (0) 2021.02.07