Python의 메서드 재정의: 이것이 무엇인지, 어떻게 수행합니까?

게시 됨: 2021-09-28

Python은 컴퓨터 프로그래밍 애호가가 반드시 배워야 하는 고급 범용 언어입니다. JAVA, C++, Golang, Ruby 등과 같이 널리 사용되는 다른 컴퓨터 언어와 유사합니다. Python은 코딩이 클래스와 객체에 의존하는 객체 지향 프로그래밍 언어이기도 합니다. 이 개념을 통해 개발자는 개별 개체를 나타내는 간단하고 재사용 가능한 코드를 구성할 수 있습니다. OOP 언어가 제공하는 몇 가지 유용한 기능이 있으며 그 중 하나는 메서드 재정의입니다.

이 기사에서는 상속의 개념을 이해하여 Python에서 메서드 재정의를 탐색합니다. 클래스가 무엇인지 이해하는 것으로 시작하겠습니다.

목차

수업이란 무엇입니까?

클래스는 객체 지향 프로그래밍 패러다임의 기능 또는 인스턴스입니다. 프로그램 내의 확장된 프로그램 코딩 템플릿입니다. 클래스는 프로그래머가 생성 시 각 개체(배열, 문자열, 변수 등)의 초기 데이터를 입력하는 데 도움이 됩니다. 또한 클래스의 특성을 정의하고 데이터를 처리하거나 입력을 제공하는 방법을 결정할 수 있습니다. 프로그램에서 정의된 상위 클래스 또는 상위 클래스 아래에 하위 클래스 또는 하위 클래스가 있습니다.

상속이란 무엇입니까? 이점은 무엇입니까?

객체 지향 프로그래밍에서 상속은 클래스의 기능을 다른 클래스나 하위 클래스에 상속할 수 있도록 하는 속성입니다. 이것은 데이터 중복을 방지하고 프로그램을 더 잘 컴파일하며 실수의 범위를 제한하는 데 도움이 됩니다.

다른 클래스에서 기능을 파생하거나 상속하는 클래스의 이러한 기능을 상속이라고 합니다. 특성과 속성을 사용하여 하위 클래스를 파생시키는 클래스를 상위 클래스라고 합니다.

상속의 이점은 다음과 같습니다.

  • 상속을 통해 사용자는 실시간 관계를 잘 표현할 수 있습니다.
  • 코드를 재사용할 수 있습니다. 또한 프로그래머는 클래스에 더 많은 특성을 제공할 수 있습니다.
  • 전환을 허용합니다. 클래스 Q가 클래스 W에서 기능을 파생한다고 가정하면 Q의 하위 클래스가 자동으로 클래스 W에서 상속됩니다.

상속 유형

다음과 같은 세 가지 유형의 상속이 있습니다.

1. 단일 상속

단일 상속에서 파생 클래스는 단일 부모 클래스에서 기능을 상속할 수 있습니다. 코드를 재사용하고 새로운 기능을 추가할 수 있습니다.

2. 다중 상속

하나 이상의 상위 클래스의 특성을 하위 클래스로 이전하는 것을 말합니다. 여기서 기본 클래스의 기능은 자동으로 하위 클래스에 상속됩니다.

3. 다단계 상속

상위 클래스와 하위 클래스의 기능을 다른 파생 클래스로 더 상속하는 것을 다단계 상속이라고 합니다.

Python에서 메서드 재정의란 무엇입니까?

메서드 재정의는 하위 클래스 또는 하위 클래스가 상위 클래스 또는 상위 클래스에 이미 정의된 제공된 데이터의 특정 구현 프로세스 또는 특정 특성을 프로그램에 제공할 수 있는 개체 지향 프로그래밍 언어의 기능입니다.

동일한 반환값, 매개변수 또는 이름이 상위 클래스에서와 같이 하위 클래스에 입력되면 하위 클래스의 구현 방법이 상위 클래스에서 언급한 방법을 재정의합니다. 이를 메서드 재정의라고 합니다.

실행은 부모 클래스에 이미 제공된 참조 데이터가 아니라 메서드를 호출하는 데 사용되는 데이터에 따라 다릅니다. 부모 클래스의 개체가 프로그램에 특정한 구현 메서드를 호출하는 데 사용되는 경우 부모 클래스에 작성된 메서드 버전이 호출됩니다. 반면에 하위 클래스의 개체를 사용하여 메서드를 호출하는 경우 하위 클래스에서 언급한 기능에 따라 실행됩니다. 초보자이고 데이터 과학에 대한 전문 지식을 얻으려면 데이터 과학 과정을 확인하십시오.

메서드 재정의의 기능

이 섹션에서는 파이썬에서 메서드 재정의가 제공하는 두드러진 기능을 탐색할 것입니다.

  • 메서드 재정의를 사용하면 Python에서 이름이나 서명이 같은 함수와 메서드를 사용할 수 있습니다.
  • 메소드 오버로딩은 런타임 다형성의 예입니다.
  • 메서드 오버라이딩에서는 항상 상속 기능을 사용해야 합니다.
  • 메서드 오버로딩은 부모 클래스와 자식 클래스 간에 수행됩니다.
  • 기존 메서드의 동작과 구현을 변경하는 데 사용됩니다.
  • 메서드 재정의에는 항상 최소 두 개의 클래스가 필요합니다.

메서드 재정의 이해: 다중 및 다중 수준 상속

다중 및 다중 수준 상속은 대부분의 객체 지향 프로그래밍 언어에서 제공하는 두 가지 유형의 상속입니다. 이 섹션에서는 메서드 재정의가 다양한 다중 수준 상속에서 사용되는 방법을 볼 것입니다.

1. 다중 상속

이러한 종류의 클래스 또는 개체 상속에서 하위 클래스는 여러 상위 클래스 또는 기반의 기능과 특성을 상속합니다. 예를 들어, 세 가지 다른 부모 클래스(class.1, class.2, class.3)가 있고 다중 상속 기능을 실행하는 자식 클래스인 class.a가 있습니다. class.a에는 세 가지 기본 클래스 모두에서 상속된 기능이 포함됩니다.

다음은 샘플 프로그램입니다.

# 부모 클래스 정의 1

클래스 Parent1():

# 부모의 쇼 방식

def show(자신):

print("부모1 내부")

# 부모 클래스 2 정의

클래스 Parent2():

# 부모의 쇼 방식

def 디스플레이(자신):

print("부모2 내부")

# 자식 클래스 정의

클래스 하위(부모1, 부모2):

# 아이의 쇼 방식

def show(자신):

print("인사이드 차일드")

# 드라이버 코드

obj = 자식()

obj.show()

obj.display()

산출:

인사이드 차일드

내부 Parent2

2. 다단계 상속

이러한 종류의 클래스 또는 객체 상속에서 하위 클래스는 이미 상위 클래스의 특성을 갖고 있는 기본 클래스에서 직접 상속됩니다. 그것은 기본적으로 아버지-아들 또는 할아버지-손자 관계와 같습니다. 하위 클래스의 기능은 상위 클래스에 고유합니다. 예를 들어 class.Q라는 부모 클래스가 있고 class.Q의 확장에 하위 클래스가 형성됩니다. 여기서 하위 클래스는 다른 하위 클래스의 기본 클래스 역할을 할 수 있습니다.

다음은 샘플 프로그램입니다.

클래스 부모():

def 디스플레이(자신):

print("부모 내부")

클래스 하위(부모):

# 아이의 쇼 방식

def show(자신):

print("인사이드 차일드")

클래스 손자(자식):

# 아이의 쇼 방식

def show(자신):

print("손자 내부")

# 드라이버 코드

g = 손자()

g.show()

g.디스플레이()

출력 :

손자 내부

내부 부모

재정의된 메서드 내에서 기본 클래스 메서드 호출

재정의된 메서드 사이에 부모 클래스 메서드를 호출할 수 있는 메서드가 있습니다. 다음 프로세스를 사용하여 수행할 수 있습니다.

  • 클래스 이름 사용

하위 클래스의 재정의된 메서드에 클래스 이름 메서드를 작성하면 부모 클래스에서 제공하는 메서드를 호출할 수 있습니다.

  • super() 함수 사용

Python의 프로그래밍 언어는 특히 부모 클래스를 참조하는 데 사용되는 super()라는 함수를 제공합니다.

결론

메서드 재정의는 Python 언어의 가장 중요한 기능 중 하나입니다. 이 속성은 프로그래밍 데이터 과학 응용 프로그램에서 광범위하게 사용되며 간결하고 효율적인 데이터 분석이 가능합니다. 메서드 재정의는 또한 코드 컴파일과 재검사를 더 쉽게 만듭니다. 이 기능을 사용하려면 몇 가지 전제 조건이 있습니다. 클래스 및 상속의 기본 개념을 이해하는 것입니다.

Python의 메서드 재정의에 대해 자세히 알아보려면 18개월 데이터 과학 석사 과정 을 수강하는 것이 좋습니다 . upGrad는 IIIT 방갈로르와 리버풀 존 무어 대학교에서 이 과정을 제공합니다. 이 과정은 통계, Python을 사용한 예측 분석, 기계 학습, 데이터 시각화, 빅 데이터 분석 등과 같은 기술을 가르칩니다. Python 개념에 대한 강력한 지식을 갖춘 학생들은 딥 러닝, 자연어 처리, 비즈니스 분석 및 데이터 엔지니어링과 같은 주제를 다룰 수 있는 좋은 위치에 있습니다.

지금 바로 연락하여 학습 여정을 시작하세요!

재정의와 오버로딩을 구별하십시오.

재정의와 오버로딩의 주요 차이점은 재정의는 동일한 메서드 또는 동일한 서명 간에 발생하는 반면 오버로드는 동일한 클래스 메서드 간에 발생한다는 것입니다.

1. 메소드 오버로딩은 컴파일 타임 다형성을 예시하는 반면 메소드 오버라이드는 런타임 다형성을 예시합니다.
2. Python에서는 메소드 오버로딩을 실행할 수 없지만 특정 조건에서는 메소드 오버라이드를 실행할 수 있습니다.

메서드 재정의의 기능은 무엇입니까?

메서드 재정의의 기능은 다음과 같습니다.

1. 런타임 다형성을 예시합니다.
2. 부모 클래스와 자식 클래스 간의 링크를 설정합니다.
3. 적어도 하나의 클래스를 연결하므로 상속 기능을 사용해야 합니다.
4. 메서드 재정의는 둘 이상의 함수에 대해 단일 이름을 사용하는 데 도움이 됩니다.

메서드 재정의를 사용하여 파생 클래스에서 부모 클래스의 메서드를 구현합니다.

상속의 다른 유형은 무엇입니까? Python에서 개인 메서드를 재정의할 수 있습니까?

기본적으로 메서드 재정의는 다중 수준 및 다중 상속을 사용합니다.

다단계 상속에서 하위 클래스는 상위 클래스의 특성으로 구성된 기본 클래스에서 상속됩니다. 그러나 다중 상속의 경우 하위 클래스는 하나 이상의 상위 클래스 또는 기반의 특성을 보여줍니다.

개인 메서드 재정의는 Java에서 발생할 수 없지만 '이름 맹글링'으로 알려진 프로세스를 사용하여 Python에서 수행할 수 있습니다.