[Python] 5. 모듈, 객체지향 프로그래

강미진·2023년 4월 16일
  1. 모듈 개념
    함수가 선언되어 있는 파이썬 파일
  • 이미 만들어진 기능으로 사용자가 사용 가능
  • 파이썬 모듈은 내부 모듈, 외부 모듈, 사용자 모듈로 구분 가능
  • 내부 모듈 : 파이썬 설치 시 기본적으로 사용 가능
  • 외부 모듈 : 별도 설치 후 사용할 수 있는 모듈
  • 사용자 모듈 : 사용자가 직접 만든 모듈
  1. 모듈 만들기
  • 특정 기능을 가지고 있는 파이썬 파일 (.py)
  • 파이썬 파일 이름에서 확장자 제거한 이름만 명시하면 바로 모듈을 사용할 수 있다.
  1. 모듈 사용하기
  • import 키워드를 이용해 모듈을 불러온다
  • as 키워드를 이용해 모듈 이름을 단축시킬 수 있다.
  • from~as 키워드를 이용해 모듈의 특정 기능만 사용할 수 있다.
  • 변수 = [] <== 리스트업
    -0000.append(xxx) : xxx를 리스트 0000에 추가함
  1. 실행(메인) 파일
  • 전역변수 name을 이용한 실행파일 지정
  • name에는 모듈 이름이 저장되거나 'main'이 저장된다.
  • 실행파일은 main으로만 저장된다
  1. 패키지
    : 패키지를 이용하면 관련 있는 모듈을 그룹으로 관리할 수 있다.
  • site-packages : 이 위치에 있는 모듈은 어디서나 이용할 수 있다.
  • sys : 시스템에 대한 간략한 정보를 가진 모듈
  • venv = virtual environment : 가상환경
  1. 자주 사용하는 모듈
    : 수학, 난수, 시간 모듈 (math, random, time)

<객체지향 프로그래밍>
1. 개념
: 객체를 이용한 프로그램 = 속성 + 기능
: 일상생활에 있는 계산기를 생각해보자. 자동차도 생각해보자.
계산기

  • 속성 : 숫자 버튼들
  • 기능 : 덧셈, 뺄셈, 나눗셈, 제곱근 등
    자동차
  • 속성 : 색상, 길이, 가격
  • 기능 : 전진, 후진, 정지, 브레이크 등
  1. 객체 만들기
  • 객체는 클래스 (Class)에서 생성된다.
  • 클래스를 제작해서 객체를 생성 (원하는 만큼 클래스에서 객체를 생성할 수 있음)
    -aka 붕어빵 틀
  1. 객체 사용의 장점
  • 코드 재사용, 모듈화에 좋다.: 결합도가 낮다.
  1. 클래스 만들기
    : 클래스는 class 키워드 + 속성 (변수) + 기능 (함수)
    ex)
    class Car:
    (생성자) definit.(self, color, length) :
    (속성) self. color = color
    self. length = length
    (기능) def. doStop(self) :
    print('stop')
    (기능) def. doStart(self) :
    print('start')
    : 객체는 클래스의 생성자를 호출한다.

  2. 객체 속성 변경
    : 객체 속성은 변경할 수 있다.

  3. 객체와 메모리
    : 변수는 객체의 메모리 주소를 저장하고 이를 이용해서 객체를 참조한다.

  4. 객체 복사에 대한 이해

  • 얕은 복사 : 객체 주소를 복사하는 것으로 객체 자체가 복사되지는 않는다.
    --> 객체 주소가 복사됨으로써 동일한 객체를 가리키기 때문에 속성값의 변동이 양방향에 영향을 끼친다.
  • 깊은 복사 : 객체 자체를 복사하는 것으로 또 하나의 객체가 만들어진다.
    # sort -- 리스트를 정렬
    # sorted() -- 리스트를 정렬해서 새로운 리스트로 제작
  1. 클래스 상속
    : 다른 클래스의 기능을 내것처럼 사용하기
  • 다중 상속: 2개 이상의 클래스를 상속한다.
  1. 생성자
  • 객체가 생성될 때 생성자를 호출하면 init()가 자동 호출된다.
  • init()은 속성을 초기화한다. [변수가 대입된다.]
  • super() :속성을 상속하기 위해서는 해당 함수를 사용해야 한다.
    ex)super().init(self제외)

10.Class overriding : 하위 클래스에서 상위 클래스의 메서드를 재정의한다.

  1. 추상 클래스
    : 상위 클래스에서 하위 클래스에 메서드 구현을 강요한다.
    : 상위 클래스에서 선언만 하고 하위 클래스에 상속
    : 하위 클래스에서 상위 클래스에서 선언된 메서드를 구체화
profile
g'day mate

0개의 댓글