본문 바로가기
교육

[91일 차] 21.12.01 : Python 6

by ballena 2021. 12. 1.

Python - 모듈, 패키지, 클래스, 생성자


1교시

 

 

라이브러리 : 개발자가 모듈 기능을 호출하는 형태의 모듈

프레임워크 : 제어 역전이 발생하는 모듈. 내부에 함수만 정의하고 직접적으로 무언가 실행하는 코드 없음

제어 역전 : 개발자가 만든 함수를 모듈이 실행하는 형태의 제어 흐름

(일반적인 흐름은 개발자가 모듈의 함수를 호출하는 것)


2교시

 

 

모듈 만들기 실습

-> 모듈파일.py 만들고 메인 파일에서 import 모듈파일 해서 사용해보기

 

패키지 : 복잡하고 구조화된 모듈을 만들 때 사용하는 기능

 

  • __name__ == "__main__"

__name__

-> 엔트리 포인트/메인 : 프로그램의 진입점. 메인 내부에서의 __name__은 "__main__"

 

메인 파일에서 모듈 import 후 __name__을 확인해 보면

-> 모듈의 __name__ 출력 후 메인의 __name__ 출력

main.py
출력 결과

-> import한 모듈의 내용이 실행된 후 메인 파일의 내용이 실행된다

작성하지도, 의도하지도 않은 내용이 출력된 것이다. 그래서 지정하는 것이 엔트리 포인트

-> __name__이 __main__일 경우에만 코드가 시작되도록

test_module.py

모듈 파일에 __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

댓글