몇 가지 동일한 메소드를 여러 클래스에 추가하는 가장 비효율적 인 방법은 무엇입니까?Pythonic 방법은 여러 클래스에 여러 메소드를 추가합니까?
나는 클래스 장식을 사용할 수 있지만 그 합병증의 공정한 조금 가져올 것하고 더 열심히 작성하고 다른 방법보다 읽기.
나는 모든 메소드를 가진 기본 클래스를 만들 수 있었고 다른 클래스는 상속 받도록 만들었지 만 클래스의 일부에서는 다중 상속을 허용하려는 유혹을받을 수있었습니다. 자주 읽지 않았던 것은 피하거나 최소화해야합니다. 또한 "is-a"관계는 적용되지 않습니다.
또한 오리 값 지정을 통해 값을 적절한 값으로 제공 할 것으로 기대되는 독립 실행 형 함수로 변경 될 수 있습니다. 이것은 어떤면에서는 깨끗하지만 객체 지향성이 적기 때문에 해당 유형의 객체에서 함수를 사용할 수있을 때 명확하지 않습니다.
위임을 사용할 수는 있지만이 경우에는 호출하려는 클래스가 모두 헬퍼 클래스 메서드를 호출하는 메서드를 필요로합니다. 이렇게하면 코드 기반이 다른 옵션보다 훨씬 길어지고 헬퍼 클래스에 새 함수를 추가 할 때마다 위임하는 메소드를 추가해야합니다.
어떤 클래스에서는 하나의 클래스가 다른 클래스의 인스턴스를 제공하는 경우가 있지만 어떤 경우에는 제대로 작동하지만 항상 정상적으로 작동하지는 않으며 그렇지 않은 경우보다 호출이 복잡해질 수 있습니다.
약간의 주위를 놀고 난 후에, 나는 그것이 다중 상속으로 인도 할 때에도 towrds 상속을 기울이고있다. 그러나 다중 텍스트 상속을 허용하는 것에 대해 매우 강력하게 경고하는 수많은 텍스트들 때문에 망설이고, 일부는 (예 : wikipedia 항목과 같이) 코드 재사용을위한 상속 만 최소화해야한다고 말하고 있습니다. 간단한 예를 들어 우리 모두는 x의 위치를 가지고 수많은 별개의 클래스, Y 그리드 다루고 말할 수 있도록
이, 예를 들어 더 명확 할 수있다. 두 개의 엔티티 사이의 거리 나 상대적인 방향, 중간 점 등의 x, y 위치를 가진 모든 메소드를 만들고자 할 때가 있습니다.
이러한 모든 클래스에 속성으로 x와 y가있는 경우에만 의존하는 이러한 메서드에 액세스 할 수있는 가장 비범 한 방법일까요?
감사합니다.그것은 그것이가는 길일 것 같다. – TimothyAWiseman