(Python) 객체 지향, 모듈 및 패키지

1. 객체 지향 프로그래밍

1) 객체

  • 객체: 실생활에서 객체의 한 유형입니다.

    특성과 행동을 가지고
  • OOP는 이 객체 개념을 프로그램으로 나타냅니다.

  • 속성은 변수로 표현되고 동작은 함수(메서드)로 표현됩니다.

  • OOP는 클래스와 인스턴스로 나뉩니다.

2) 객체 지향 프로그래밍의 약속

  • snake_case : 공백에 “_”(밑줄)을 추가합니다.

    Python 함수 또는 변수 이름에 사용됨
  • CamelCase: 공백 때문입니다.

    Python 클래스 이름에 사용됨
  • Python에서 __의 의미(두 개의 밑줄): 특수 예약 함수 또는 함수 이름 변경(mangling)으로 사용

3) 속성

  • 속성 추가는 __init__ 및 self와 함께 사용됩니다.

  • __init__은 예약된 개체 초기화 함수입니다.

  • __str__ : 클래스를 문자열처럼 사용해야 하는 경우(인쇄 기능)
  • __add__ : 값을 더하는 함수
  • 위와 같은 함수를 매직 메서드라고 합니다.

    매우 다양함(참조: https://corikachu.github.io/articles/python/python-magic-method)

4) 객체 지향에 필요한 것

  • 상속: 부모 클래스에서 속성과 메서드를 상속하는 자식 클래스 만들기.
  • 다형성: 동일한 이름을 가진 메서드에 대해 다른 내부 논리 작성
  • Visibility: 사물의 정보를 볼 수 있는 정도를 조절

5) 최고 수준의 기능

  • Python은 변수 또는 데이터 구조에 대한 할당을 허용하는 일급 함수입니다.

  • 내부 함수: 함수 안의 또 다른 함수

2. 모듈 및 패키지

1) 모듈

  • 어떤 것의 일부
  • 프로그램의 작은 프로그램 조각
  • 프로그램을 모듈화하면 다른 프로그램에서 더 쉽게 사용할 수 있습니다.

  • 파이썬의 py 파일
  • 예를 들어 fah_convert.py에 섭씨 온도를 변경하는 covert_c_to_f라는 함수가 있는 경우 import fah_convert.py를 통해 fah_convert.covert_c_to_f 함수를 사용할 수 있습니다.

2) 패키지

  • 모듈 단위, 프로그램
  • 이 프로젝트의 공개
  • init 및 main과 같은 키워드 파일 이름이 사용됩니다.

  • 다양한 오픈소스를 모두 패키지로 관리

3) 가상 환경

  • 프로젝트에 필요한 패키지만 설치하는 환경
  • 기본 인터프리터 + 프로젝트 유형별 패키지 설치