Python의 OOP 개념에 대한 완전한 가이드
게시 됨: 2020-10-22객체 지향 프로그래밍(OOP)은 한동안 소프트웨어 세계에서 없어서는 안될 부분이었습니다. 일정 수준의 자유도를 제공하고 개발자의 프로그래밍 성취도를 높이는 우수한 프로그래밍 패러다임입니다.
모든 개발자가 알아야 할 기본 개념과 원칙이 있습니다. 그들은 이 모델을 사용하여 애플리케이션을 개발하기 위한 전제를 추진합니다.
여기에서는 Python 의 중요하지만 기본적인 OOP 개념을 살펴보겠습니다 . 이러한 개념은 프로그래머가 더 나은 결과를 달성하고 풍부한 방식으로 앱을 모델링하도록 유도합니다.
목차
객체 지향 프로그래밍이란 무엇입니까?
초심자를 위해 여기에서 우리의 귀납을 시작할 것입니다. OOP를 어떻게 해결할 수 있는지 더 깊이 이해하기 위해 일반인처럼 OOP를 이해합시다.
이 프로그래밍 구조에서는 유사한 속성이나 동작을 가진 항목을 단일 개체로 쉽게 결합할 수 있습니다. 인구 통계에 대해 이야기하는 경우 이 프로그래밍 모델의 단일 개체가 됩니다. 마찬가지로 취해야 할 조치에 대해 이야기하는 경우 다른 대상이 됩니다.
그것들은 모두 원시 데이터를 포함하는 개체입니다. 소프트웨어 솔루션은 최종 목표를 함께 달성하는 방식으로 이러한 개체를 프로그래밍합니다. 이러한 개체는 사용자가 프로그래밍한 대로 몇 가지 작업을 함께 수행하고 결과를 제공합니다.
이것을 이해하는 데 도움이 되는 훌륭한 예는 이메일 프로그램입니다.
받는 사람의 이름과 제목과 같은 전자 메일 내용을 포함하는 개체가 하나 있다고 가정해 보겠습니다. 첨부 파일과 이메일 전송을 자세히 설명하는 두 번째 개체가 있습니다. 이러한 개체를 자동으로 결합하는 프로그램을 설계하고 원하는 첨부 파일과 함께 완전히 작성된 전자 메일이 준비되었는지 확인한 다음 받는 사람에게 보냅니다.
이것이 OOP가 작동하는 방식입니다. 그러나 일부 개념은 이를 실행합니다. 이러한 개념과 그 기능을 간단히 살펴보겠습니다.
읽기: Python은 객체 지향 언어입니까?
클래스를 정의하는 방법?
클래스는 모든 객체를 정의하는 것이며 Python에서 OOP 개념 의 중요한 측면입니다 . 눈, 귀, 입, 코와 같은 4개의 개체가 있다고 가정해 보겠습니다. 이것들은 클래스인 얼굴의 일부입니다.
클래스를 정의하는 방법부터 시작하겠습니다.
이메일이라는 클래스에 대해 이야기하고 있다고 가정해 보겠습니다.
수업 이메일:
통과하다
이것이 클래스가 정의되는 방식입니다. 컴파일러에서 코드를 실행할 때 버그가 발생하지 않도록 "패스"를 사용하십시오.
클래스를 정의하는 것만으로는 그다지 도움이 되지 않을 수 있습니다. 매력적이고 유용한 코드를 만들기 위해 몇 가지 속성을 추가해야 합니다. 따라서 클래스에 객체를 추가해야 합니다.
._init_() 메서드는 클래스 내에서 속성을 정의할 때 유용할 것입니다.
이렇게 하면 클래스에 대한 새 개체를 만들 때마다 이 메서드가 매개변수를 초기 상태로 설정하여 매번 새 개체를 초기화합니다.
이 메서드의 첫 번째 매개변수는 여러 매개변수를 할당하더라도 항상 self입니다.
그렇다면 이 경우에는 어떻게 될까요? 새 클래스를 생성했다고 가정해 보겠습니다. 인스턴스는 self 매개변수로 전송됩니다. 결과적으로 ._init_()는 정의된 객체에 새로운 속성을 할당할 수 있습니다.
아직 사용법을 고민하고 계시다면 예시를 통해 이해해 보도록 하겠습니다.
수업 이메일:
def ._init_(자신, 이름, 받는 사람, 주소):
self.name = 이름
self.recipient = 받는 사람
self.address = 주소
더 나은 이해를 위해 이 코드를 분해해 보겠습니다.
위의 코드에서 표현된 들여쓰기는 중요합니다. Python에서 OOP를 사용하여 프로그램을 작성할 때도 동일하게 일치해야 합니다 . 위 코드에서 self 변수를 이해하자.
self.name은 name이라는 속성을 생성합니다. name 매개변수의 값이 이 속성에 할당됩니다. 유사하게, 속성과 값은 상대방 변수에도 할당됩니다.
이러한 속성을 인스턴스라고 합니다. 특정 인스턴스 내에서 언급된 모든 속성의 값을 지정해야 합니다. 환영 이메일과 육성 이메일의 두 가지 유형이 있다고 가정해 보겠습니다. 이메일 수신자는 두 경우 모두 다릅니다(환영 이메일 및 육성 이메일).
반면에 클래스 속성은 다릅니다. 모든 클래스 인스턴스에 대해 동일한 값을 포함합니다. 예를 들어, 이들은 모두 인바운드 이메일입니다. 이것은 정의할 수 있는 클래스 속성입니다.
수업 이메일:
#클래스 속성

이메일: "인바운드 이메일"
def ._init_(자신, 이름, 받는 사람, 주소):
self.name = 이름
self.recipient = 받는 사람
self.address = 주소
자세히 알아보기: Java 프로젝트를 코딩, 컴파일 및 실행하는 방법
클래스 및 인스턴스 변수 이해
파이썬에서 OOP를 더 잘 이해하기 위해 클래스 속성과 두 개의 인스턴스 변수를 생성한 위의 예를 살펴보겠습니다 .
수업 이메일:
이메일: "인바운드 이메일"
def ._init_(자신, 이름, 받는 사람, 주소):
self.name = 이름
self.recipient = 받는 사람
self.address = 주소
이 클래스 내에서 개체를 인스턴스화하는 방법에 대해 이야기해 보겠습니다. 이러한 각 개체에 대한 값을 설정해야 합니다. 이것은 가이드의 앞부분에서 설명한 것처럼 모든 개체의 초기 값이 됩니다. 이러한 개체에 값을 할당하지 않으면 TypeError가 발생합니다.
>>> 이메일()
역추적(가장 최근 호출 마지막):
<module>의 파일 “<pyshell#6>”, 1행
이메일()
TypeError: __init__() 4개의 위치 인수 누락: 'name', 'recipient' 및 'address'
클래스 이름 바로 뒤에 값을 추가할 수 있습니다.
Nurture 이메일 = 이메일(Nurture, David, [email protected])
환영 이메일 = 이메일 (Welcome, Daisy, [email protected])
위의 코드를 사용하여 육성 이메일과 환영 이메일의 두 가지 인스턴스를 생성했습니다. 위 코드의 클래스 인스턴스 뒤에 정의된 __init__()을 확인해보자. self를 포함하여 4개의 매개변수가 표시됩니다. 그러나 self에 대한 변수는 언급되지 않았습니다. 이유를 알아볼까요?
따라서 클래스 내에서 새 객체를 생성할 때마다 클래스를 인스턴스화하게 됩니다. 이 작업을 수행하는 동안 변수가 저장될 메모리 주소를 할당하게 됩니다. 새 객체를 인스턴스화하자마자 Python은 자동으로 인스턴스를 생성하고 .__init__() 메서드의 첫 번째 변수에 전달됩니다. 결과적으로 이 방법에서는 self가 제거됩니다.
클래스 변수를 사용하면 생성한 모든 인스턴스에 연결된 변수 또는 값이 있는지 확인할 수 있습니다. 이것은 더 빠르고 쉬운 결과를 보장하므로 프로그래밍에 대한 더 안전한 결론을 얻을 수 있습니다.
또한 읽기: 신입 및 경험자를 위한 47 OOPS 인터뷰 질문 및 답변을 읽어야 합니다.
합산
여기에서 Python OOP 프로그래밍 모델을 사용하여 클래스, 개체 및 메서드를 만드는 다양한 측면을 이해했습니다. 이 외에도 Python에서 OOP 프로그래밍의 핵심인 인스턴스 및 인스턴스화와 같은 개념도 이해했습니다. 다음으로 상속, 다형성, 추상화 및 캡슐화와 같은 이러한 인스턴스 및 클래스를 제어하는 원칙을 이해해야 합니다. 애플리케이션과 그 결과를 구동 하는 Python의 핵심 OOP 개념입니다.
Python 깔때기에서 더 나아가려면 기본 사항이 명확하고 뿌리가 있어야 합니다. 따라서 수업에 뛰어들어 어떻게 작동하는지 이해하십시오. 응용 프로그램을 설정하기 전에 이러한 변수를 약간 사용하고 결과를 이해하십시오.
급변하는 기술 발전의 선두에 서기 위해 데이터 과학을 배우는 데 관심이 있다면 upGrad & IIIT-B의 데이터 과학 PG 디플로마를 확인하고 미래를 위한 기술을 향상시키십시오.
우리는 왜 OOP를 사용합니까?
객체 지향 프로그래밍(OOP)은 실행, 조작 및 패키지화할 수 있는 속성 및 동작과 함께 재사용 가능한 '객체'의 개발에 의존하는 프로그래밍 프레임워크입니다. Python은 OOP와 기타 프레임워크를 모두 지원합니다. Python에서는 클래스를 사용하여 OOP를 달성합니다. Python은 객체 지향 프로그래밍의 모든 일반적인 특성을 가지고 있습니다. 개발자는 Python 응용 프로그램에서 OOP를 활용합니다. OOP를 통해 코드를 더 쉽게 재사용할 수 있고 더 큰 프로그램으로 작업할 수 있기 때문입니다. 클래스는 한 번만 정의하고 여러 번 사용할 수 있기 때문에 OOP 시스템은 코드 복제를 방지합니다. 결과적으로 OOP는 'DRY(Don't Repeat Yourself)' 개념을 따르기 쉽게 만듭니다.
수업이란 무엇입니까?
Python 클래스는 새 객체를 생성하기 위한 청사진과 유사합니다. 객체는 코딩하는 동안 수정하거나 변경하려는 모든 것입니다. 변수를 정의할 때 발생하는 클래스 개체를 인스턴스화하면 새 개체가 처음부터 생성됩니다. 클래스 객체는 필요한 만큼 재사용할 수 있습니다. 클래스는 각 항목을 구성하는 데 사용됩니다. 이것을 특정 종류의 항목에 대한 청사진이라고 생각하십시오. 클래스는 해당 유형의 객체에 필요한 속성을 나열하지만 값을 할당하지는 않습니다. 클래스는 동일한 유형의 모든 개체에서 공유하는 메서드도 지정합니다.
인스턴스 변수란 무엇입니까?
클래스 인스턴스는 Python에서 인스턴스 변수를 소유합니다. 인스턴스 변수의 값은 연결된 인스턴스에 따라 변경될 수 있습니다. 이것은 하나의 값만 할당할 수 있는 클래스 변수와 다릅니다. 인스턴스 변수는 클래스 메서드 내에서 선언됩니다. 클래스를 선언할 때 인스턴스 변수에 값을 할당할 수 있습니다. 클래스를 선언할 때 인수로 할당하려는 값을 제공합니다.