python interface with ABC, Protocol, goose typing

• 파이썬에서 인터페이스는 ABC(Abstract Base Classes)를 사용하여 정의하며, 이 경우 인터페이스의 모든 메서드를 구현해야 한다. 만약 모든 메서드를 구현하지 않으면 에러가 발생한다.
• 반면에 Protocol을 사용하면 인터페이스의 일부 속성만 구현해도 실행이 가능하다. 하지만 이 경우 해당 클래스는 인터페이스의 인스턴스나 서브클래스로 간주되지 않는다.
• Python에서 Protocol을 사용한 인터페이스는 구현체가 인터페이스의 모든 속성과 메서드를 구현하지 않아도 되며, 이를 통해 더 유연한 프로그래밍이 가능하다.
• 하지만, 인터페이스에 정의된 메서드를 구현하지 않은 경우에는 해당 메서드를 호출하려고 하면 에러가 발생한다. 따라서 인터페이스를 사용할 때는 해당 인터페이스의 모든 메서드를 구현하거나, 필요한 메서드만 호출하는 것이 중요하다.

북마크
공유하기
신고하기