나는 종종 파이썬 코드에서 볼 수있는 코드 패턴을 제출하고 싶습니다. 여기서는 직장에서 만족스럽지 않고 더 나은 솔루션을 원합니다.추상 메서드와 파이썬에서 믹스
class AbstractClass(object):
....
def method1(self,...)
raise NotImplementedError
...
class FirstImplementationMixin(object)
def method1(self,....)
...
class SecondImplementationMixin(object)
def method1(self...)
....
class InstanciatedClass1(FirstImplementationMixin, AbstractClass)
....
class InstanciatedClass2(SecondImplementationMixin, AbstractClass)
....
당신이 트릭을 볼 수 있나요 : 여기
오늘날 우리가 가지고 무엇인가? 상속의 목록 목록의 첫 번째 위치에 mixin을 추가해야하며이 솔루션이 마음에 들지 않습니다. 두 번째 위치에 추가하면 인터프리터는 AbstractClass.method1을 사용하므로 예외가 발생합니다.
이 간단한 상황에서는 믹스 인을 중간 클래스로 바꾸는 것이 가능하지만 이미 기본 클래스가있는 복잡한 상속의 경우 솔루션이 명확하지 않을 수 있습니다.
당신에게 가장 좋은 디자인 패턴은 무엇입니까?
파이썬이 어떻게 작동하는지. 당신이 당신의 언어로 분리 된 개념으로서 형질/믹스 인을 가지지 않을 때 당신은 단순히 그것들을 클래스들과 혼합합니다. "우선 순위"순으로 수업을 나열하는 것은 매우 자연스러운 일입니다. – kirelagin