티스토리 뷰

[1] 객체 지향 프로그래밍 OOP(Object Oriented Programming)

- 만들어 놓은 코드를 재사용 하고 싶다 => 객체

- 객체 : 실생활에서 일종의 물건, 속성(변수,variable)과 행동(함수, method)을 가짐

- 파이썬 역시 객체 지향 프로그램 언어

- 클래스(붕어빵틀)와 인스턴스(붕어빵)

 

(1) class

- 사용법: class class이름(상속받는 객체명, python3는 자동상속되어 생략가능):

- 작명법: 함수와 변수명은 snake_case, 클래스는 CamelCase

구분 예시
(1) 속성 (attribute)
* 파이썬에서 __는 특수한 예약함수, 변수, 함수명 변경(맨글링)으로 사용(매직메소드)
__init__(self와 함께 사용, 속성 추가), __main__, __add__, __eq__ 등

class SoccerPlayer(object):
  def __init__(self, name:str, position:SystemError, back_number:int):
    self.name = name # ②self : 생성된 인스턴스, abc,park
    self.position = position
    self.back_number = back_number

  def __str__(self):
    return "Hello, My name is %s. My back number is %d" % (self.name, self.back_number) 

  def __add__(self, other):
    return self.name + other.name

  def change_back_number(self, new_number):
    print("선수의 등번호를 변경합니다: From %d to %d" % (self.back_number, new_number))
    self.back_number = new_number


(1) 속성, 매직메소드

1) __init__ : 속성값(name 등)을 추가해 줘야함
abc= SoccerPlayer("son","FW",7)
park = SoccerPlayer("park","WF",13)
# ① abc, park라는 인스턴스 생성
print(abc is park) # False 틀만 같고, 메모리주소는 다름

2) __str__ : print시 특정 값을 return해줌
print(abc) # Hello, My name is son. My back number is 7
*만약 __str__이 없으면, 메모리 주소값만 출력됨
<__main__.SoccerPlayer object at 0x0000014B96C3BDC0> 

3) __add__ : 두개를 더해줌, 빼기와 곱하기도 됨
print(abc+park) # sonpark


(2) 함수
1) 함수 호출
park.change_back_number(5)
# 선수의 등번호를 변경합니다: From 13 to 5
print(park) # Hello, My name is park. My back number is 5

2) 함수 호출 없이 속성 값 직접 변경 가능(but 권장X)
park.back_number = 10
print(park) # Hello, My name is park. My back number is 10
(2) 함수(method) 
- 기존 함수 처럼 def로 추가 가능
- 반드시 self를 추가해야만 class함수로 인정됨

 

 

※ 출처 : 네이버 부스트코스 - 인공지능 기초 다지기(https://www.boostcourse.org/ai100)

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함