파이썬 오버라이드 메소드 리턴 기본문법과 예제

이전에 우리가 파이썬 클래스 상속에 대해서 알아보았는데 오버라이드는 상속을 재정의하여 동일한 객체 클래스를 만들어 새로운 기능을 물려받고 추가할수가 있습니다.

자색 객체는 부모 객체의 기능을 물려받았지만 부모객체의 기능이 마음에 들지않아서 다시 재정의하여 기능을 변경하는것을 오버라이드라고 할수가 있는것입니다.

1.오버라이드 기본문법

예제를 살펴보면 class C1: 클래스에 def m(self): 함수로 return ‘parent’ 리턴값을 출력하고, class C2(C1): 클래스 C2는 C1을 상속받고, def m(self): 함수이름을 동일하게 하였삽니다.

리턴값으로 return super().m() + ‘ child’ 는, super().m() 은 부모클래스 함수를 출력할수가 있습니다. 변수 o = C2(), o.m() 으로 클래스 C2 의 함수 m 을 출력하면 perent child 가 출력되는것을 확인할수가 있습니다.

이처럼 부모클래스에 속한 함수의 값을 출력하지 않고, 자식클래스에 있는 함수의 값이 출력되는것을 확인할수가 있습니다.

2.오버라이드 계산기 예제

이전에 사용했던 계산기 예제에 오버라이드 기능을 추가해 보도록 합니다. 함수 def info(self): 의 값을 Cal 클래스의 값을 리턴하였습니다.

오버라이드 기능으로 def info(self): 값을 CalMultiply(Cal): 클래스를 리턴하면, 부모클래스의 def info 함수는 c1 = Cal(30, 60) c1.info() 을 출력하고, 자식클래스 CalMultiply(Cal) 함수 def info(self): 은 c2 = CalMultiply(10, 10) 변수로 c2.info() 을 각각 출력합니다.

3.오버라이드 예제 출력

이처럼 클래스메소드에 위치한 부모클래스 def info 함수를 출력한것과, class CalMultiply(Cal) 에 위치한 def info 함수가 각각 다르게 출력되는것을 확인할수가 있습니다.

지금까지 파이썬 오버라이드 메소드 리턴 기본문법과 간단한 예제를 살펴보았습니다. 일반적으로 다른사람의 코드를 수정하여 사용하는 경우라면 이 기능은 사용하는 일이 거의 없지만 직접 프로그래밍을 하다보면 필요할수가 있습니다.

Leave a Comment