- 모듈 개념
함수가 선언되어 있는 파이썬 파일
- 이미 만들어진 기능으로 사용자가 사용 가능
- 파이썬 모듈은 내부 모듈, 외부 모듈, 사용자 모듈로 구분 가능
- 내부 모듈 : 파이썬 설치 시 기본적으로 사용 가능
- 외부 모듈 : 별도 설치 후 사용할 수 있는 모듈
- 사용자 모듈 : 사용자가 직접 만든 모듈
- 모듈 만들기
- 특정 기능을 가지고 있는 파이썬 파일 (.py)
- 파이썬 파일 이름에서 확장자 제거한 이름만 명시하면 바로 모듈을 사용할 수 있다.
- 모듈 사용하기
- import 키워드를 이용해 모듈을 불러온다
- as 키워드를 이용해 모듈 이름을 단축시킬 수 있다.
- from~as 키워드를 이용해 모듈의 특정 기능만 사용할 수 있다.
- 변수 = [] <== 리스트업
-0000.append(xxx) : xxx를 리스트 0000에 추가함
- 실행(메인) 파일
- 전역변수 name을 이용한 실행파일 지정
- name에는 모듈 이름이 저장되거나 'main'이 저장된다.
- 실행파일은 main으로만 저장된다
- 패키지
: 패키지를 이용하면 관련 있는 모듈을 그룹으로 관리할 수 있다.
- site-packages : 이 위치에 있는 모듈은 어디서나 이용할 수 있다.
- sys : 시스템에 대한 간략한 정보를 가진 모듈
- venv = virtual environment : 가상환경
- 자주 사용하는 모듈
: 수학, 난수, 시간 모듈 (math, random, time)
<객체지향 프로그래밍>
1. 개념
: 객체를 이용한 프로그램 = 속성 + 기능
: 일상생활에 있는 계산기를 생각해보자. 자동차도 생각해보자.
계산기
- 속성 : 숫자 버튼들
- 기능 : 덧셈, 뺄셈, 나눗셈, 제곱근 등
자동차
- 속성 : 색상, 길이, 가격
- 기능 : 전진, 후진, 정지, 브레이크 등
- 객체 만들기
- 객체는 클래스 (Class)에서 생성된다.
- 클래스를 제작해서 객체를 생성 (원하는 만큼 클래스에서 객체를 생성할 수 있음)
-aka 붕어빵 틀
- 객체 사용의 장점
- 코드 재사용, 모듈화에 좋다.: 결합도가 낮다.
-
클래스 만들기
: 클래스는 class 키워드 + 속성 (변수) + 기능 (함수)
ex)
class Car:
(생성자) definit.(self, color, length) :
(속성) self. color = color
self. length = length
(기능) def. doStop(self) :
print('stop')
(기능) def. doStart(self) :
print('start')
: 객체는 클래스의 생성자를 호출한다.
-
객체 속성 변경
: 객체 속성은 변경할 수 있다.
-
객체와 메모리
: 변수는 객체의 메모리 주소를 저장하고 이를 이용해서 객체를 참조한다.
-
객체 복사에 대한 이해
- 얕은 복사 : 객체 주소를 복사하는 것으로 객체 자체가 복사되지는 않는다.
--> 객체 주소가 복사됨으로써 동일한 객체를 가리키기 때문에 속성값의 변동이 양방향에 영향을 끼친다.
- 깊은 복사 : 객체 자체를 복사하는 것으로 또 하나의 객체가 만들어진다.
# sort -- 리스트를 정렬
# sorted() -- 리스트를 정렬해서 새로운 리스트로 제작
- 클래스 상속
: 다른 클래스의 기능을 내것처럼 사용하기
- 생성자
- 객체가 생성될 때 생성자를 호출하면 init()가 자동 호출된다.
- init()은 속성을 초기화한다. [변수가 대입된다.]
- super() :속성을 상속하기 위해서는 해당 함수를 사용해야 한다.
ex)super().init(self제외)
10.Class overriding : 하위 클래스에서 상위 클래스의 메서드를 재정의한다.
- 추상 클래스
: 상위 클래스에서 하위 클래스에 메서드 구현을 강요한다.
: 상위 클래스에서 선언만 하고 하위 클래스에 상속
: 하위 클래스에서 상위 클래스에서 선언된 메서드를 구체화