Python - 모듈, 패키지, 클래스, 생성자
1교시
라이브러리 : 개발자가 모듈 기능을 호출하는 형태의 모듈
프레임워크 : 제어 역전이 발생하는 모듈. 내부에 함수만 정의하고 직접적으로 무언가 실행하는 코드 없음
제어 역전 : 개발자가 만든 함수를 모듈이 실행하는 형태의 제어 흐름
(일반적인 흐름은 개발자가 모듈의 함수를 호출하는 것)
2교시
모듈 만들기 실습
-> 모듈파일.py 만들고 메인 파일에서 import 모듈파일 해서 사용해보기
패키지 : 복잡하고 구조화된 모듈을 만들 때 사용하는 기능
- __name__ == "__main__"
__name__
-> 엔트리 포인트/메인 : 프로그램의 진입점. 메인 내부에서의 __name__은 "__main__"
메인 파일에서 모듈 import 후 __name__을 확인해 보면
-> 모듈의 __name__ 출력 후 메인의 __name__ 출력
-> import한 모듈의 내용이 실행된 후 메인 파일의 내용이 실행된다
작성하지도, 의도하지도 않은 내용이 출력된 것이다. 그래서 지정하는 것이 엔트리 포인트
-> __name__이 __main__일 경우에만 코드가 시작되도록
모듈 파일에 __name__이 __main__일 경우에만 실행되는 부분 - 엔트리 포인트 작성
패키지 : 모듈이 모여서 구조를 이루면 패키지
-> 대충 모듈이 들어있는 폴더가 패키지
3~4교시
취업지원팀 면접 특강
외부 모듈을 pip 명령어로 설치하면 Python > Lib > site-packages 경로에 설치된다.
패키지 폴더 안에 __init__.py 파일 추가
-> 패키지 읽어들일 때 가장 먼저 실행
-> 패키지 관련 초기화 처리
객체 지향 프로그래밍
-> 객체를 우선으로 생각해서 프로그래밍하는 것
-> 클래스 기반의 객체 지향 프로그래밍
객체 : 여러 가지 속성을 가질 수 있는 모든 대상
-> 숫자, 모듈, 리스트, 딕셔너리 등등
-> 데이터와 코드를 모두 포함
클래스 : 객체를 더 효율적으로 생성하기 위해 만들어진 구문
-> 생성자 : 일반 생성자/클래스 생성자
-> 메소드 : 클래스가 가지고 있는 함수
대충 객체를 만드는 공장이 클래스라고 생각하자
5교시
print()에서 sep는 구분자(seperator).
print("이름", "총점", "평균", sep="\t")
-> 각 문자열 사이에 탭으로 구분
6교시
class 클래스명:
클래스 내용
인스턴스명(변수명) = 클래스명() -> 생성자 함수
인스턴스 : 생성자를 사용하여 클래스 기반으로 만들어진 객체
생성자 : 클래스 이름과 같은 함수
-> 클래스 내부에서는 __init__이라는 이름으로 작성, 외부에서 인스턴스 생성 시 클래스명으로 호출
-> 클래스 내부의 함수는 첫 번째 매개변수로 self 입력(매개변수가 없더라도 self는 입력)
7교시
클래스 변수, 클래스 함수, ininstance() 등 클래스의 부가적인 기능에 대해
상속 : 어떤 클래스를 기반으로 그 속성과 기능을 물려받아 새로운 클래스를 만드는 것
ininstance(인스턴스, 클래스) : 상속 관계에 따라 객체가 어떤 클래스를 기반으로 만들었는지 확인하는 함수
특수한 이름의 메소드
-> __이름__() 의 형태 : 보조 기능을 가진 함수들. 특수한 상황에 자동으로 호출되도록 만들어진다.
8교시
클래스 함수 : 클래스가 가진 함수. 클래스가 가진 기능을 명시적으로 나타낸다
'교육' 카테고리의 다른 글
[93일 차] 21.12.03 : Terraform 2 (0) | 2021.12.03 |
---|---|
[92일 차] 21.12.02 : Terraform 1 (0) | 2021.12.02 |
[90일 차] 21.11.30 : Python 5 (0) | 2021.11.30 |
[89일 차] 21.11.29 : Python 4 (0) | 2021.11.29 |
[88일 차] 21.11.26 : Python 3 (0) | 2021.11.26 |
댓글