파이썬 기초 문법 III
파이썬 기초 문법
Python Object Oriented Programming(Python OOP)
객체지향 프로그래밍 개요
- Object Oriented Programming. OOP
- 객체: 실생활에서 일종의 물건
- 속성(Attribute)과 행동(Method)을 가짐
- OOP는 이러한 객체 개념을 프로그램으로 표현
- 속성은 변수(Variable), 행동은 함수(Method)로 표현
- OOP는 설계도에 해당하는 클래스(class)와 실제 구현체인 인스턴스(instance)로 나눔
Object in Python
class 구현하기 in Python
- 축구 선수 정보를 Class로 구현하기
Attribute 추가하기
- Attribute 추가는 __init__, self와 함께
- __init__은 객체 초기화 예약 함수
파이썬에서 __의미
- __는 특수한 예약 함수나 변수 그리고 함수명 변경(맨글링)으로 사용
ex) __main__, __add__, __str__, , __eq__
method 구현하기
- method(Action) 추가는 기존 함수와 같으나, 반드시 self를 추가해야만 class 함수로 인정됨
- 자기 자신을 가리킬 때 self 키워드를 사용한다.
objects(instance) 사용하기
- Object 이름 선언과 함께 초기값 입력하기
객체 지향 언어의 특징
- 상속(inheritance)
- 다형성(Polymorphism)
- 은닉화(Visibility), 캡슐화(Encapsulation)
상속(inheritance)
- 부모 클래스로부터 속성과 Method를 물려받은 자식 클래스를 생성하는 것
다형성(Poltmorphism)
- 같은 이름 메소드의 내부 로직을 다르게 작성
- Dynamic Typing 특성으로 인해 파이썬에서는 같은 부모 클래스의 상속에서 주로 발생함
- 중요한 OOP의 개념 그러나 너무 깊이 알 필요 X
은닉화(Visibility), 캡슐화(Encapsulation)
- 객체의 정보를 볼 수 있는 레벨을 조절하는 것
- 누구나 객체 안에 모든 변수를 볼 필요가 없음
Module and Project
Module
- 프로그램에서는 작은 프로그램 조각들, 모듈들을 모아서 하나의 큰 프로그램을 개발함
- 프로그램을 모듈화 시키면 다른 프로그램이 사용하기 쉬움
패키지
- 모듈을 모아놓은 단위, 하나의 프로그램
모듈
- 파이썬의 module은 .py 파일을 의미함
- 같은 폴더에 Module에 해당하는.py 파일과 사용하는 .py을 저장한 후, import문을 통해 module을 호출할 수 있음
namespace
- 모듈을 호출할 때 범위 정하는 방법
- 모듈 안에는 함수와 클래스 등이 존재 가능
- 필요한 내용만 골라서 호출 할 수 있음
- from과 import 키워드를사용함
Built-in Modules
- 파이썬이 기본 제공하는 라이브러리
- 문자처리, 웹, 수학 등 다양한 모듈이 제공됨
- 별다른 조치없이 import 문으로 활용 가능
패키지
- 하나의 대형 프로젝트를 만드는 코드의 묶음
- 다양한 모듈들의 합, 폴더로 연결됨
- __init__, __main__ 등 키워드 파일명이 사용됨
- 다양한 오픈 소스들이 모두 패키지로 관리됨
Package namespace
Package 내에서 다른 폴더의 모듈을 부를 때, 상담 참조로 호출하는 방법
Python Virtual Environment
- 프로젝트 진행 시 필요한 패키지만 설치하는 환경
- 기본 인터프리터 + 프로젝트 종류별 패키지 설치
- 다양한 패키지 관리 도구를 사용함