Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 클래스의 Getters/Setters 메서드는 무엇입니까?


Getter 및 setter는 데이터 캡슐화 원칙을 보장하기 위해 많은 객체 지향 프로그래밍 언어에서 사용됩니다. 그것들은 돌연변이자 방법으로도 알려져 있습니다. 데이터 캡슐화는 이러한 데이터에서 작동하는 메서드와 데이터를 묶는 것으로 간주됩니다. 물론 이러한 메소드는 데이터 검색을 위한 getter와 데이터 변경을 위한 setter입니다. 이 원칙에 따라 클래스의 속성은 다른 코드로부터 숨기고 보호하기 위해 비공개로 설정됩니다.

불행하게도 적절한 Python 클래스는 getter와 setter를 사용하여 개인 속성을 캡슐화해야 한다는 생각이 널리 퍼져 있습니다. getter와 setter를 사용하는 것은 쉽고 우아하지 않습니다. 이를 수행하는 파이썬적인 방법은 속성 또는 속성이 있는 클래스를 사용하는 것입니다. 값을 얻는 데 사용되는 메서드는 "@property"로 장식됩니다. setter로 기능해야 하는 메소드는 "@x.setter"로 장식되어 있습니다.

예시

게터와 세터를 사용하는 예는 다음과 같습니다.

class P:
    def __init__(self,x):        
         self.__set_x(x)
    def __get_x(self):        
        return self.__x
    def __set_x(self, x):  
         if x < 0:            
           self.__x = 0  
        elif x > 1000:            
           self.__x = 1000        
        else:      
          self.__x = x
    x = property(__get_x, __set_x)