Google Python style guide concerning properties의 권장 사항 중 하나에 대해 궁금합니다. 로 ___get_area
및 ___set_area
을 "간접"를 세 밑줄을 사용하는 이점은 무엇getter 및 setter 용 Google 스타일 가이드 속성
: 나는이 개 이것에 대해 질문이
class Square(object): """A square with two properties: a writable area and a read-only perimeter. To use: >>> sq = Square(3) >>> sq.area 9 >>> sq.perimeter 12 >>> sq.area = 16 >>> sq.side 4 >>> sq.perimeter 16 """ def __init__(self, side): self.side = side def __get_area(self): """Calculates the 'area' property.""" return self.side ** 2 def ___get_area(self): """Indirect accessor for 'area' property.""" return self.__get_area() def __set_area(self, area): """Sets the 'area' property.""" self.side = math.sqrt(area) def ___set_area(self, area): """Indirect setter for 'area' property.""" self.__set_area(area) area = property(___get_area, ___set_area, doc="""Gets or sets the area of the square.""") @property def perimeter(self): return self.side * 4
:
는, 그들은 다음과 같은 예제를 제공 두 개의 밑줄 문자를 사용하는 것 이상의 두 개의 밑줄 문자로도 사용할 수 있습니까? 왜 오히려 같은 것을하는 것보다, 더블, 트리플 밑줄 방법이 집합하는 방법으로
property()
를 사용:
그들이 이유를 제공 할 스타일 가이드에서@property def area(self): return self.side ** 2 @area.setter def area(self, value): self.side = math.sqrt(value)
고마워요! 그럼, 만약 내가 제대로 이해하고있어, 당신은 내 질문 # 2 (즉 @ 속성 및 @ area.setter)에서 말한 일을하는 것이 좋습니다거야 그리고 ProperlySubclassedSquare에서 귀하의 방법을 사용하여 하위 클래스? – mindvirus
@mdkess : 절대적으로; 스타일 가이드는 구형 Python 버전 용으로 작성되었습니다. –