파이썬의 상속 | Python 상속 [예제 포함]
게시 됨: 2020-12-14Python은 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. Python 2 버전에서 Python 3으로의 기복으로 가득 찬 전환에도 불구하고 객체 지향 프로그래밍 언어는 엄청난 인기를 얻었습니다.
Python 개발자로서의 경력을 계획하고 있다면 더 높은 지불금을 받게 될 것입니다. Python 개발자 의 평균 급여 는 연간 약 $119,082입니다. 하지만 파이썬 학습 프로그램을 진행하기 전에 먼저 알아야 할 것이 있습니다. 바로 파이썬의 상속입니다. Python 및 기타 도구에 대한 전문 지식을 얻으려면 데이터 과학 인증을 확인하십시오.
먼저 Python에서 상속이 정확히 무엇인지부터 시작하겠습니다.
목차
파이썬에서 상속이란 무엇입니까?
부모-자식 관계와 마찬가지로 상속은 기본 클래스와 관련된 파생 클래스에서 작동합니다. 모든 "파생" 클래스는 "기본" 클래스에서 상속됩니다. 상속은 UML 또는 통합 모델링 언어로 표현됩니다. 개발자가 소프트웨어 시스템 요소를 지정, 구조화 및 문서화하는 데 도움이 되는 통합 다이어그램 세트가 포함된 표준 모델링 언어입니다.
상속 관계는 다른 클래스에서 상속되는 클래스를 파생 클래스, 하위 클래스 또는 하위 유형 클래스로 정의합니다. 기본 클래스는 하위 클래스가 상속하는 소스로 남아 있습니다. 예를 들어 기본 클래스가 "Animal"이고 "Lion"이 Derived 클래스라고 가정합니다. 상속은 사자는 동물입니다.
그렇다면 문제는 "사자" 클래스가 "동물"에서 상속하는 것은 무엇입니까?
"Lion" 클래스는 다음을 상속합니다.
- 상호 작용
- 실행
참고: Liskov 대체 원칙 이라고 하는 응용 프로그램에서 파생 클래스 개체를 기본 클래스 개체로 바꿀 수 있습니다 . 컴퓨터 프로그램이 Q의 하위 유형으로 개체 P를 갖는 경우 속성을 변경하지 않고 P를 Q로 쉽게 바꿀 수 있음을 나타냅니다.
또한 체크아웃: 인도의 Python 개발자 급여
파이썬에서 상속의 장점
- Python의 상속은 개발자가 객체를 재사용하는 데 도움이 됩니다.
- 클래스가 기본 클래스를 상속할 때마다 상위 개체의 기능에 액세스할 수 있습니다.
- 상속으로 인한 재사용성도 기본 클래스가 이미 테스트되었기 때문에 안정적입니다.
- 낮은 개발 시간 및 비용
- 클래스 간 인터페이스 표준화가 쉬워집니다.
- 코드의 중복성을 줄이고 확장성을 향상시킵니다.
- 클래스 라이브러리 생성이 쉬워집니다.
Python의 상속 유형
단일 상속
우리는 이미 단일 상속이 무엇인지, 즉 "Base" 클래스에서 "Derived" 클래스를 상속하는 것을 보았습니다. 예를 들어 이해하자면,
클래스 국가:
def ShowCountry(자체):
print("여기는 스페인입니다");
클래스 주(국가):
def ShowState(자체):
print("상태입니다");
st = 상태();
st.ShowCountry();
st.ShowState();
다단계 상속
Python은 여러 객체로 구성되어 있으며 다단계 상속을 통해 클래스 기능을 재사용할 수 있는 무한한 가능성이 있습니다. 다단계 상속은 파생 클래스가 다른 파생 클래스를 상속할 때마다 문서화됩니다. 기능을 상속할 수 있는 파생 클래스의 수에는 제한이 없으며 이것이 다단계 상속이 Python에서 재사용성을 향상시키는 데 도움이 되는 이유입니다.
다음은 다단계 상속의 예입니다.
클래스 동물:
def 발언(자신):
print("동물 말하기")
# 하위 클래스 Dog는 기본 클래스 Animal을 상속합니다.
클래스 개(동물):
def 나무 껍질(자신):
print("개 짖는 소리")
# 자식 클래스 Dogchild는 다른 자식 클래스 Dog를 상속합니다.
클래스 DogChild(개):
def 먹다(자신):
print("빵을 먹고 있습니다...")
d = DogChild()
d.껍질()
d.말하기()
먹다()
다중 상속
Python을 사용하면 개발자가 서로 다른 기본 클래스의 여러 기능과 속성을 단일 파생 클래스로 상속할 수 있습니다. 광범위한 도구나 코딩 없이 여러 종속성을 상속할 수 있으므로 대부분 훌륭한 기능입니다.
다중 상속의 예를 살펴보겠습니다.
클래스 계산1:
def 합계(self,a,b):
반환 + b;
클래스 Calculation2:

def 곱셈(self,a,b):
반환 * b;
클래스 파생(Calculation1,Calculation2):
def 나누기(self,a,b):
반환/b;
d = 파생()
print(d.Summation(10,20))
print(d.곱하기(10,20))
인쇄(d.나누기(10,20))
확인: Python으로 음성을 텍스트로 변환하는 방법
파생 클래스를 식별하는 방법은 무엇입니까?
Python에는 개발자가 클래스가 파생 클래스인지 아니면 기본 클래스인지 확인하는 데 도움이 되는 내장 issubclass() 함수가 함께 제공됩니다. 이 함수를 실행하면 하위 클래스 또는 파생 클래스의 경우 결과 "True"가 반환되고 기본 클래스의 경우 False가 반환됩니다.
개발자는 이 예제를 통해 클래스를 확인할 수 있습니다.
클래스 myAge:
나이 = 36
클래스 myObj(myAge):
이름 = "존"
나이 = 내 나이
x = issubclass(myObj, myAge)
Python에서 클래스 계층을 만드는 방법은 무엇입니까?
Python의 상속은 클래스의 계층 구조를 만드는 데 도움이 됩니다. 모든 상대 클래스는 서로 통신하기 위해 공통 인터페이스를 공유합니다. Base 클래스는 인터페이스를 정의합니다. 파생 클래스는 인터페이스의 특정 전문화를 제공할 수 있습니다. 여기에서 우리는 클래스 계층 구조를 보여주기 위해 HR 모델을 탐색하고 있습니다.
HR 시스템은 여러 회사 직원의 급여를 처리합니다. 각 근로자는 ID를 통해 식별되며 계산할 급여 위치가 다릅니다.
먼저 급여 클래스를 "기본" 개체로 생성해 보겠습니다.
# hr.py에서
클래스 급여 시스템:
def compute_payroll(자신, 근로자):
print('급여 계산')
print('====================')
노동자의 노동자를 위해:
print(f'급여: {worker.id} – {worker.name}')
print(f'- 금액 확인: {worker.calculate_payroll()}')
인쇄(")
PayrollSystem 은 .calculate_payroll() 메소드를 실행 하여 근로자의 정보를 수집하고 근로자의 ID, 이름을 출력하고 급여 금액을 확인합니다 . 이제 모든 작업자 유형에 대한 표준 인터페이스를 처리 하는 기본 클래스 작업자 를 실행합니다.
# hr.py에서
클래스 작업자:
def __init__(자신, 아이디, 이름):
self.id = 아이디
self.name = 이름
회사의 모든 작업자 유형에 대한 작업자 기본 클래스를 생성하면 HR 시스템에서 계층 구조를 쉽게 만들 수 있습니다. 모든 작업자에게는 이름과 ID가 할당됩니다. HR 시스템에서는 근로자가 .calculate_payroll() 인터페이스를 통해 주급에 관한 데이터를 제공해야 합니다. 이 인터페이스의 실행은 작업자의 유형에 따라 다를 수 있습니다.
필독: 파이썬 인터뷰 질문
결론
여기에서 우리는 다양한 Python 클래스를 생성하고, 이들 간의 관계를 설정하고, 클래스 계층 구조를 설정하는 방법을 배웠습니다. 그러나 Python의 상속은 여기에 언급된 기능에만 국한되지 않습니다.
기계 학습 및 AI 고급 인증 : 인도 최고의 교육 기관 중 하나인 IIT 마드라스가 upGrad와 제휴하여 개인이 이 과정을 통해 기계 학습에 대한 완전한 지식을 가질 수 있도록 기계 학습에 대한 고급 과정을 만들었습니다.
데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍 , 업계 전문가와의 멘토링, 1 - 업계 멘토와 일대일, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.
파이썬에서 상속이 중요한 이유는 무엇입니까?
상속은 부모 클래스의 속성을 자식 클래스로 전달하는 과정을 의미합니다. 이것은 객체 지향 프로그래밍(OOP) 개념이며 Python에서 중요합니다. 상속이 코드 재사용성을 제공하기 때문입니다. 즉, 동일한 코드를 반복해서 작성하는 대신 자식 클래스에서 필요한 속성을 상속할 수 있습니다. 또한 부모 클래스와 자식 클래스 간의 실제 관계를 묘사하므로 이해하고 구현하기 쉽습니다. 전이적 성질을 가지고 있습니다. 모든 자식 클래스는 부모로부터 속성을 상속하므로 모든 하위 클래스는 마찬가지로 부모 클래스의 기능을 사용합니다.
파이썬을 배우는 동안 상속이 필요합니까?
네, 파이썬을 배우는 동안 상속을 배우는 것은 필요합니다. 대규모 파이썬 응용 프로그램은 현재 시장에서 파이썬 프로그래머의 수를 증가시켜야 합니다. 이러한 급증으로 인해 Python을 배우는 사람들의 수가 증가했습니다. Python 프로그래밍 언어는 상속과 같은 개념이 풍부합니다. 이 객체 지향 프로그래밍 언어의 필수 개념 중 하나는 상속입니다. 상속은 코드 재사용성, 가독성 및 속성 전환을 허용하므로 Python을 학습하면서 학습하는 것이 필수적입니다. 상속은 정확하고 효율적인 코드를 만드는 데 도움이 됩니다.
Python에서 지원되지 않는 상속 유형은 무엇입니까?
Python은 다른 객체 지향 프로그래밍 언어와 달리 다중 상속을 포함한 모든 형태의 상속을 허용합니다. 상속 개념을 사용하여 기존 클래스에서 새 클래스를 구성하는 것이 가능합니다. 이것은 코드의 재사용을 용이하게 합니다. 부모 클래스에 지정된 메서드는 자식 클래스에서도 사용됩니다. C++에서도 이러한 종류의 상속이 가능하지만 Python의 고급스럽고 잘 설계된 방법론이 부족합니다. Python은 단일 코드 조각에서 여러 유형의 상속을 구현할 수 있는 하이브리드 상속도 제공합니다. 코드 재사용성은 상속의 강점이기 때문에 Python으로 작업할 때 다양한 응용 프로그램에서 유용합니다.