2011-03-12 5 views
11

필자는 문서 작성 목적 외에도 많은 이점을 찾을 수 없습니다. 파이썬은 ABC에서 정의한 메소드를 구현하는 것을 잊어 버렸다고 경고하지만, 인터페이스로 객체를 참조하지 않기 때문에 인터페이스에서 메소드를 선언하는 것을 잊어 버리고 이벤트에 주목하지 않을 것입니다. 인터페이스와 비슷한 동작을 위해 ABC를 사용하는 것이 일반적입니까?인터페이스/추상 기본 클래스를 사용하는 것은 불쾌한가요?

답변

6

개인적으로, 개발자 나 다른 개발자 사이에서 인터페이스하는 라이브러리 나 다른 코드를 작성할 때 개인적으로 가장 유용한 추상 클래스를 찾습니다.

정적 유형 언어의 장점 중 하나는 잘못된 형식을 사용할 때 일찍 실패합니다 (종종 컴파일 시간만큼 빠름). ABC는 Python이 동적 타이핑을 통해 이와 똑같은 이점을 얻을 수있게합니다.

라이브러리 코드 덕분에 중요한 메소드가없는 객체를 입력하면 해당 메소드가 필요할 때까지는 실패하지 않을 것입니다 (사용 방법에 따라 많은 시간이 걸리거나 일관성없는 상태가 될 수 있음). 그러나 ABC의 경우 누락 된 방법 중 하나가 올바른 ABC를 사용하지 않고 (instanceof 수표에 실패) ABC에서 "유효성을 검사"합니다.

또한 ABC는 개념적으로나 문서화 문자열을 통해 문자 그대로 인터페이스를 문서화하는 훌륭한 방법입니다.

관련 문제