객체 지향 프로그래밍은 모든 언어의 가장 기본적인 프로그래밍 기법.
딥러닝 등 거의 객체 지향으로 되어있다.
객체 지향 프로그래밍 :Object Oriented Programming
OO / OOP로 부름
객체 : 속성과 행동을 가짐
ex) 리스트
- 속성(attribute) : 변수(variable)
- 행동 : 함수(method)
클래스(class) : 붕어빵 틀 : 설계도
객체를 클래스로 만들기 때문에 클래스에 속성과 행동이 존재
class 클래스 이름(상속받는객체명):
ex) class SoccerPlayer(object):
속성 추가하기
__init__ : 객체 초기화 함수
def __init__(self, name : str, position:str, back_number:int):
self.name=name
self.position=position
self.back_number=back_number
self.position은 객체의 초기 정보 이고, 그 정보에 실제 값인 postion이 (할당되는 것)들어가는 것이다.
self는 생성된 인스턴스 자기 자신을 의미하는 키워드
init을 만들 때 파라미터에 self는 꼭 들어간다.
파라미터를 적을 때 name:str 처럼 자료형을 적어주면 더 확실하게 알려줄 수 있다. 힌트를 주는 것
def __str__(self):
return "Hello, %s" % (self.name)
객체를 그냥 프린트에 넣었을 때 나오게 되는 구문이다.
a=SoccerPlayer("yo", "WF",12)
print(a)
>>Hello, yo
method 구현하기
def change_back_number(self, new_number):
print("등번호를 변경합니다 : From %d to %d" % (self.back_number, self.new_number))
self.back_number=new_number
이렇게 구현을 하고,
a.change_back_number(9)
이렇게 실행시킬 수 있다.
인스턴스(instance) : 붕어빵 : 실제 구현체
a=SoccerPlayer("yo", "WF",12)
a라는 하나의 붕어빵, 인스턴스를 만든 것이다.
Reference: 부스트캠프 AI Tech 3기 Pre-Course-Python Object Oriented Programming
'개발 > Python' 카테고리의 다른 글
부스트캠프 AI Tech 3기 Pre-Course [2]-3 decorate,일급객체, inner function (0) | 2021.12.07 |
---|---|
부스트캠프 AI Tech 3기 Pre-Course [2]-2 객체 지향 언어의 특징 (0) | 2021.12.06 |
[Python] 함수병 변경 (맹글링:mangling), __ 의미, 언더바(under bar) 2개 (0) | 2021.12.06 |
[Python] naming rule (0) | 2021.12.06 |
[Python] lambda 익명 함수 (0) | 2021.11.14 |