클래스 내의 메소드는 property/setter 접근 자, 즉 "add_to_field"를 사용해야합니까? 아니면 private 변수에 직접 액세스해야합니까?Python 코딩 스타일 - 클래스 내부의 속성/설정자?
class Example(object):
def __init__(self, field):
self._field = field
@property
def field(self):
return self._field
@field.setter
def field(self, field):
self._field = field
def add_to_field(self, something):
self.field += something
def subtract_from_field(self, something):
self._field += something
세터가 변수를 순전히 설정하지 않았지만 로깅과 같은 다른 작업을 수행 한 경우는 어떻습니까? 이 나쁜 스타일인가요?
@field.setter
def field(self, field):
log.logger.debug("Field set to %r", field)
self._field = field
현재 내 코드는 둘 다 혼합되어 있습니다. 어떤 방향으로 리팩터링 할 것인지 모르겠다.
초기 예제에서는 속성을 전혀 사용하지 않아야합니다. 그냥 일반 속성 액세스를 사용하십시오. – wim