ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Object Oriented
    Computer Science/Basic Programming with Python 2021. 12. 7. 21:06

    Python 코딩을 하다보면 Object Oriented Programing이라는 terminology를 사용하게 된다. 예를들면, BeautifulSoup은 soup이라는 object를 리턴한다. 그리고, 그 soup object 안에 있는 method를 사용하면 list를 리턴하는등의 동작을 하는것이다. 줄여서 OOP라고도 부른다. 예를 들어보자.

    https://docs.python.org/3/tutorial/datastructures.html

    list objects들을 나열한 리스트이다. 리스트 데이터 타입에 어떤 methods들이 있는지를 보여준다. 이렇게 functions(또는 methods)들은 objects 들에 속해있다.

     

    https://docs.python.org/3/library/sqlite3.html

    또다른 예시를 보자. MySQL같은 DB를 연결하기 위해서는 connection object가 필요하다. sqlite3과 같은 object를 import해서, db와 연결하고, 명령어를 보낼 수 있다.

     

    아래 코드 예시를 보자. 

    inp = input('Europe floor?')
    usf = int(inp) + 1
    print('US floor', usf)

    이 프로그램은, input을 받아서, 숫자로 바꾸고 계산을하는 Process를 진행하고, Output을 만들어준다. 이 코드는 inside program에 존재한다. 어떠한 boundary가 있고, 사용하는 사람은 이 코드에 대해서 알 필요가 없이, 아래 질문만 답해주면, 결과를 볼 수 있다.

    Europe floor? 0
    US floor 1

    우리는 어떤 프로그램을 설치하고, 이용하기만 하면 된다. 우리가 어떻게 계산했는지에 대해 생각할 필요 없이 사용할 수 있다. 물론, 디테일을 파악하고 사용하면 좋지만 많은 코드들은 디테일을 숨긴다.

     

    Object Oriented

    OOP 에 대해서 아래와 같이 정리해볼 수 있다.

    • 프로그램은 수많은 objects들의 cooperating(협력)으로 이루어져있다.
    • 전체가 하나인 "whole program" 대신, 각각의 objects들은 작은 섬들과 같고, 그 섬들이 한 프로그램에 모여있는것이다. 그리고 그 섬들은(objects들은) 서로 cooperatively(협력적으로) 움직인다.
    • 프로그램은 1개 이상의 objects들이 함께 일을 한다. 각 objects들은 서로의 능력을 이용한다.

     

    Object

    그리고 Object는 아래와 같이 정리해볼 수 있다.

    • Object 는 self-contained 코드와 데이터이다.
    • Object의 가장 중요한 면은, 문제를 여러가지 이해하기 쉬운 부분으로 나누어서 처리한다는 것이다. 이를 divide and conquer이라고 한다.
    • Object 들은 바운더리가 있는데, 필요없는 디테일을 무시할 수 있도록 해준다.
    • Python에서도 많은 Objects를 사용하고 있다. (String Objects, Iteger Objects, Dictionary Objects, List Objects)...

     

     

     

     

    'Computer Science > Basic Programming with Python' 카테고리의 다른 글

    Relational Databases  (0) 2021.12.07
    Python Library  (0) 2021.11.20
    Python Useful Functions  (0) 2021.11.20
    Lambda  (0) 2021.11.20
    Nested Function  (0) 2021.11.19

    댓글

Designed by Tistory.