-
OOP파이썬(판다스, AI,데이터 분석) 2021. 9. 13. 18:58
OOP(Object-Oriented Programming)
OOP는 객체 지향 프로그램밍으로써 프로그래밍 방식중 하나이다.
OOP는 프로그래밍 패러다임중 하나이다. OOP를 많이 사용하는 이유는 전 세계에서 프로그래밍 언어로써 상당히 많은 비율을 차지하고 있는 언어인 Java, Python, C++언어들이 대부분 OPP를 기반으로 설계되었거나 OPP를 지원하기 때문입니다.
TIOBLE의 2021 년 전 세계 언어 순위 객체 지향이란 무엇인가
객체란 현실세계에 존재하는 하나 하나의 독립된 무언가를 의미한다.
잠깐 딴소리를 하자면 동물을 분류 할 때 많은 단계를 거친다.
위의 그림처럼 생명의 하위 단계에는 여러가지가 있고 그중 최하위 단계에 우리가 흔히 이름을 붙인 동물의 객체들이 이 있다. 소를 예로 들어보자
위의 그림을 통해 우리가 흔히 먹는 한우는 우제목>......>소과>......소속>누렁소 객체임을 알 수 있다.
지구상에서 실제로 존재하는 것은 가장 하위 객체인 누렁소 이다. 그 보다 상위의 것들 즉 역,계....강,목,과,속,종 등은 여러 객체들을 분류하기 위한 기준인 개념(클래스)이다.
추상화는 어떤 객체의 특징 통해 클래스를 만들어 가는 것이다. 동물 분류로 비유하면 소의 특징을 통해 각 특징에 맞게 분류를 찾는 것이다.
상속(Inheritance)
상위 개념의 특징을 하위 개념이 받는 것이다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# 상속코드 # 클래스 선언 class Person: def __init__(self, name): self.name = name class Student(Person): # Person 클래스 상속받음(name 변수를 파라미터로 재사용) def study(self): print (self.name + " studies hard") class Employee(Person): # Person 클래스 상속받음(name 변수를 파라미터로 재사용) def work(self): print (self.name + " works hard") # object 생성 s = Student("Dave") e = Employee("David") # object 실행 s.study() e.work() 캡슐화(Encapsulation)
어떤 클래스를 사용할 때 내부 동작이 어떻게 돌아가는지 모르더라도 사용법만 알면 쓸 수 있도록 클래스 내부를 감추는 기법
30. Python에서의 캡슐화 – 정보 은닉을 위한 접근 지정 – 언제나 휴일
안녕하세요. 언휴예요. OOP의 주요 특징인 캡슐화는 여러 가지 멤버를 하나의 형식으로 묶는 과정을 말하며 클래스를 통해 구현합니다. 특히 클래스에 멤버를 정의할 때 어느 영역에서 해당 멤버
ehpub.co.kr
알고 보면 재밌는 객체 지향 프로그래밍, OOP 흝어보기
이번 포스팅에서는 , 줄여서 흔히들 OOP라고 부르는 설계 방법론에 대해서 이야기해보려고 한다. OOP는 프로그래밍의 설계 패러다임 중 하나로, 현실 세계를 프로그램 설계에 반영한다는 개념을
evan-moon.github.io
다형성(polymorphism)
같은 모양의 코드가 다른 동작을 하는 것
예 : 키보드를 누르는 동작은 같지만 ENTER, ESC등의 누르는 키 종류마다 동작이 달라짐
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersclass Person: def run(self): print('run') def play(self): print('play') class Student(Person): def run(self): print('fast run') def play(self): print('play') class teacher(Person): def teach(self): print('teach') def play(self): print('teach play') # 리스트를 생성한다. number = list() # 생성한 리스트에 다형성 개념을 위해 다른 클래스(Student, teacher)가 상위 클래스(Person)를 참조할 수 있도록 한다. number.append(Student()) # 리스트 끝에 서브 클래스 Student()를 넣습니다. number.append(teacher()) # 다시 리스트 끝에 서브 클래스 teacher()를 넣습니다. print("=========") for Student in number: Student.run() # 상위클래스인 Person의 run은 상속하여 사용하지만 내용은 다르다. print("=========") for teacher in number: teacher.play() # 상위클래스인 Person의 play는 상속하여 사용하지만 내용은 다르다. https://www.fun-coding.org/PL&OOP1-8.html
파이썬과 객체지향 프로그래밍: 다형성(polymorphism) - 잔재미코딩
8. 다형성(polymorphism)¶ 같은 모양의 코드가 다른 동작을 하는 것 키보드의 예로 push(keyboard): 키보드를 누룬다는 동일한 코드에 대해 ENTER, ESC, A 등 실제 키에 따라 동작이 다른 것을 의미함 다형성
www.fun-coding.org
'파이썬(판다스, AI,데이터 분석)' 카테고리의 다른 글
판다스 데이터 소수점 표시 하기 (0) 2021.06.05 판다스 replace (0) 2021.06.05 판다스 인덱싱 (0) 2021.06.04 벡터와 매트릭스 ( Vectors and Matrices )-N131 (0) 2021.05.22 파이썬 판다스 inplace 옵션 (2) 2021.05.18