※ 해당 글은 네이버 부스트캠프 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
[Java] 클래스, 객체, 인스턴스 차이 구분
클래스 - 일종의 설계도로써 예를들자면, 휴대폰의 특성과 기능들을 정의해놓은 것 - 연관되어있는 메소드...
blog.naver.com
• 클래스
일종의 설계도 , 특성과 기능들을 정의 해놓은것
• 객체
클래스안에서 구현해야할 대상
예를들면 선언해 놓은 변수
• 인스턴스
객체가 구현되어진 실체
실제로 메모리로 할당된 상태
개념적으로 인스턴스는 객체와 같거나 포함된다고도 볼 수 있음
'일일일 > 개인프로젝트👩💻' 카테고리의 다른 글
[2022-08-15.day1] SAA-C02 (0) | 2022.08.16 |
---|---|
게임 개발, 오늘 부터 시작해볼까? (0) | 2022.08.11 |
<리벨런씡> 진행 한달 차 (0) | 2022.03.31 |
타입스크립트 링크 (0) | 2021.12.31 |
네이버 pre-course - 1. 딥러닝 기본 용어 설명 (0) | 2021.11.12 |
댓글