Python_OOP(객체지향 프로그래밍)

Eugenius1st·2024년 11월 24일
0

Python_Scraper

목록 보기
2/2

OOP(Object-Oriented Programming, 객체 지향 프로그래밍)란?

OOP는 코드를 구성하는 방법에 대한 규칙
OOP는 직관적이고 데이터아 구조를 직관적으로 생각하게 해준다.
Class 에는 속성, 메서드, 상속이 있다.


OOP가 필요한 이유?

  • 이해하기 쉬운 코드를 위해.
  • 캡슐화를 위해
  • 다른 종류의 데이터와 함수들을 동일한 하나의 파일에 갖고 있는것 대신에, 데이터를 구체화 할 수 있다. (Box, Object, Bubble)
  • 더 나은 방법으로 이해하기 쉽고, 보다 전문적으로 개발할 수 있다는 큰 장점을 얻을 수 있습니다.

OOP 는 확장가능성 있도록만든다. OOP 는 데이터를 수정하기 위해 어떤 함수를 넣어야 하는지를 알려준다. 명확한 경게를 만드는 것이다. 많은 딕셔너리로 다른 일을 하는 함수를 만들 필요가 없다.


Class

class 는 구조를 정의할 수 있도록 해준다.
Class 는 캡슐화 하도록 도와준다. 또한 이 데이터를 기반으로 동작하는 함수를 정의할 수 있다.

class Puppy:
  pass

ruffus = Puppy() # ruffus 는 Puppy의 한 종류라는 뜻이다.

print(ruffus) 
# <__main__.Puppy object at 0x0000028B34AFE470>

Method

method는 class 안에 있는 함수이다. 그게 다다.
함수를 만들고 class 안에 넣기만 하면 끝.
즉, class 밖에 있는 것은 function(함수) 인 것이고 class 안에 있는 것은 method(메소드) 인 것이다.

class Puppy:
  def __init__():
    print("Puppy is born")

# TypeError: Puppy.__init__() takes 0 positional arguments but 1 was given
# 0 개의 arguments 를 가져야 하는데 1개의 arguments 가 온 것이다.
# method 를 가지고 있을 경우 자동으로 "기본적으로" method 의 첫번째 arguments 는 self 가 되어야 한다. 물론 self 라고 쓸 필요는 없다.

ruffus = Puppy() # Puppy를 생성한 순간에 바로 init 함수가 자동적으로 호출 된 것이다.

# method 의 첫번째 arguments 는 self다.
# 자신을 참조한다.
class Puppy:
  def __init__(self):
    print(self)
    print("Puppy is born")

ruffus = Puppy() # Puppy를 생성한 순간에 바로 __init__ 함수가 실행 된 것이다.

print(ruffus)
# <__main__.Puppy object at 0x0000022295EFED70> 메모리 주소가 출력되었다.
# Puppy is born
# <__main__.Puppy object at 0x0000022295EFED70>

이것이 왜 유용할까?
자기 자신을 커스텀 할 수 있기에 유용하다.

class Puppy:
  def __init__(self):
    self.name = "ruffus"
    self.age = 0.1
    self.breed = 'biggke'
ruffus = Puppy() # Puppy를 생성한 순간에 바로 __init__ 함수가 실행 된 것이다.
print(ruffus.name, ruffus.age, ruffus.breed)
# ruffus 0.1 biggke

다음 편에서 커스텀 하는 법을 더 알아보자 ~

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글