다양한 목록을 가져와야하는 결과 목록이 있습니다. 예를 들어, 남성 인 모든 소유자, 5 세에서 10 세 사이의 모든 자동차.이 목록 작성 코드를 리팩토링하는 가장 좋은 방법은 무엇입니까?
def get_male_owners(self):
results = []
for result in self.results:
if result.owner.sex.male:
results.append(result)
return results
def get_cars_5_to_10(self):
results = []
for result in self.results:
if result.car:
if self.is_5_to_10(result.car):
results.append(result)
return results
def is_5_to_10(self, car):
if car.age <= 10 and car.age >= 5:
return True
else:
return False
빌드해야 할 목록이 많이 있지만 목록 작성 기능의 각 코드는 많이 사용됩니다. Python 방식으로 DRY를 구현하는 가장 좋은 방법은 무엇입니까? 감사.
"가장 평범한"방법은 없습니다. 아주 단순한 경우를 제외하고는 Pythonic 방식이 있습니다. 그렇지만 "가장 파이썬적인"방식은 아닙니다. 예를 들어, 목록 내재는 Pythonic (이 경우와 같이)으로 표시되지만 때로는 너무 복잡하여 읽을 수 없기 때문에 이해하기 어렵습니다. :) –