on
네이버 pre-course - 2. Python OOP
네이버 pre-course - 2. Python OOP
※ 해당 글은 네이버 부스트캠프 pre course 강의를 시청하며 작성한 내용입니다.
잘못 작성된 내용이 있을 수도 있습니다. 1. Python OOP 개요 - 파이썬은 객체 지향 프로그램 언어 - 객체지향 = Object-Oriented Programming - 객체란 속성과 행동을 가진 일종의 물건 => 변수와 함수를 말함 • OOP의 표현 - OOP는 객체의 개념을 프로그램으로 표현함 - 속성 = 변수(Variable) - 행동 = 함수(method) 로 표현 • OOP는 - 클래스(class)와 실제 구현체인 인스턴스(instance)로 나눔 2. OOP의 특성 (상속 추상 캡슐 다형) • 상속 부모클래스로부터 속성과 Method를 물려받은 자식 클래스를 생성하는 것 • 다형성(Polymorphism) - 다형성은 같은 부모클래스의 상속에서 주로 발생함 (원인 : Dynamin Typing 특성 때문에) - 같은 이름 메소드의 내부 로직을 다르게 작성 • 가시성(visibility) - 객체의 정보를 볼수 있는 레벨을 조절하는 것 - 누구나 객체 안에 모든 변수를 볼 필요가 없음 • 캡슐화(Encapsulation) - 클래스 설계시, 클래스 간 간섭/정보공유의 최소화 3. Python naming rule 클래스,변수,함수명은 짓는 방식이 정해져 있음 • 스네이크 케이스(snak_case) - 함수/변수명 • 카멜케이스(CamelCase) - Class 명 4. Python 객체 초기화 객체 초기화 선언시 __init__과 self를 같이 쓴다 class SoccerPlayer(object): def __init__(self, name, position, back_number): self.name = name self.position = position self.back_number = back_number 5. Python 함수명 변경(맨글링) 기존 적은 함수를 바꿔서 작성하는 것을 말함 __ 는 특수한 예약 함수/ 면수/함수명 변경으로 사용 class SoccerPlayer(object): def __str__(self): return "Hello, My name is %s. I play in %s in center " % \ (self.name, self.position) 6. Python method 구현하기 메소드 추가는 기존 함수와 같으나, 반드시 self를 추가해야만 class 함수로 인정됨 class SoccerPlayer(object): def change_back_number(self, new_number): print("선수의 등번호를 변경합니다 : From %d to %d "% \(self.back_number, new_number)) self.back_number = new_number
7. Python 인스턴스 사용하기
Object 이름 선언과 함께 초기값 입력하기
class SoccerPlayer def instanCreate(self, name) jihyun = SoccerPlayer("jihyun", "MF", 10)
8. Python 일급 함수(First-class objects)
- 일등함수 또는 일급 객체
- 함수를 변수로 선언, 파라미터로 전달 가능 + 리턴 값 사용
class example def square(x): return x*x f = square //함수를 변수로 사용 def formula(method): return method //함수를 parameter로 사용
9. Python inner function
• 함수 내에 또 다른 함수가 존재
class example def print_mst(mst): def printer() print(msg) printer()
• closures : inner function 을 return 값으로 반환
class example def print_mst(mst): def printer() print(msg) return printer()
10. Python decorator function
복잡한 클로져 함수를 간단하게 함
추가 (클래스, 객체, 인스턴스)
참고 사이트 https://blog.naver.com/PostView.nhn?blogId=good_ray&logNo;=222069343755
• 클래스
일종의 설계도 , 특성과 기능들을 정의 해놓은것
• 객체
클래스안에서 구현해야할 대상
예를들면 선언해 놓은 변수
• 인스턴스
객체가 구현되어진 실체
실제로 메모리로 할당된 상태
개념적으로 인스턴스는 객체와 같거나 포함된다고도 볼 수 있음
반응형
from http://rkgus3575.tistory.com/17 by ccl(A) rewrite - 2021-11-22 21:28:03