Study/AI

[Python] 객체 지향, 모듈 및 패키지

motti 2023. 3. 12. 16:12
반응형

1. 객체 지향 프로그래밍

1) 객체

  • 객체 : 실생활에서 일종의 물건. 속성과 행동을 가짐
  • OOP는 이러한 객체 개념을 프로그램으로 표현
  • 속성은 변수(variable), 행동은 함수(method)로 표현됨
  • OOP는 클래스(class)와 인스터스(instance)로 나눔

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

  • snake_case : 띄워쓰기 부분에 “_”(언더바) 추가. 파이썬 함수나 변수명에 사용
  • CamelCase : 띄어쓰기 부분에 대문에. 파이썬 Class명에 사용
  • 파이썬에서 __의 의미(언더바2개) : 특수한 예약함수나 함수명 변경(맨글링)으로 사용

3) 속성

  • Attribute 추가는 __init__, self와 함께쓴다
  • __init__는 객체 초기화 예약 함수이다
  • __str__ : 해당 클래스를 문자열처럼 사용해야하는 상황인 경우(print 함수)
  • __add__ : 값을 더해주는 함수
  • 위와 같은 함수를 매직 메서드라 한다. 매우 다양함(참고자료 : https://corikachu.github.io/articles/python/python-magic-method)

4) 객체 지향을 위해 필요한 것들

  • 상속 : 부모클래스로 부터 속성과 Method를 물려받은 자식 클래스를 생성 하는 것
  • 다형성 : 같은 이름 메소드의 내부 로직을 다르게 작성
  • 가시성 : 객체의 정보를 볼 수 있는 레벨을 조절하는 것

5) 일급함수

  • 파이썬은 일급함수로 변수나 데이터 구조에 할당이 가능하다.
  • Inner function : 함수 내에 또 다른 함수 존재

2. 모듈과 패키지

1) 모듈

  • 어떤 대상의 부분 혹은 조각
  • 프로그램에서 작은 프로그램 조각들
  • 프로그램을 모듈화 시키면 다른 프로그램이 사용하기 쉬움
  • 파이썬에서 py파일을 의미
  • 예를들어, fah_convert.py에 섭씨온도를 변화시키는 covert_c_to_f라는 함수가 있다면 import fah_convert.py를 통해 안에 있는 함수 fah_convert.covert_c_to_f를 사용할 수 있음.

2) 패키지

  • 모듈을 모아놓은 단위, 하나의 프로그램
  • 이것을 공개하면 프로젝트
  • init , main 등 키워드 파일명이 사용됨
  • 다양한 오픈 소스들이 모두 패키지로 관리됨

3) 가상환경

  • 프로젝트 진행시 필요한 패키지만 설치하는 환경
  • 기본 인터프리터 + 프로젝트 종류별 패키지 설치
반응형

'Study > AI' 카테고리의 다른 글

[Math] 벡터와 행렬  (0) 2023.03.12
[AI] 넘파이와 판다스  (1) 2023.03.12
[Python] 예외 처리와 파일 및 로그  (0) 2023.03.12
[Python] 파이썬의 기초문법  (0) 2023.03.12
[Python] 파이썬 개요와 환경설정  (0) 2023.03.12