객체지향
- 실제 세계를 모델링하여 공통적인 기능을 묶어 개발
클래스
객체(인스턴스)
- 식별성, 타입, 값을 지님
- 자신만의 함수를 가짐
확장성이 높아지는 장점(의존성은 낮아짐)
특성
- 다형성 : 같은 이름으로 함수를 실행할 때 아규먼트의 차이에 따라 다른 코드가 실행되게 하는 기능 (method overloading)
- 캡슐화 (은닉화) : 외부에 변수나 함수를 감춰 내용을 알지 못해도 기능 사용 가능 (nonpublic)
- 추상화 : 여러가지 요소를 하나로 통합해 사용자가 코드를 몰라도 사용 가능
self
- 객체 자신을 의미
- 클래스 내부의 함수 선언시 첫번째 parameter
- 클래스 정의 후 객체, 함수 등을 추가
생성자
- 클레스가 객체로 만들어질 때 초기값을 설정하는 기능
- __init__으로 선언
- 필수 변수가 있어야 객체 생성
상속
- 기존 클래스에 새로운 변수나 함수를 추가/수정
- 부모/자식 클래스
- is a : A is a B와 같은 의미로 상속 사용해서 클래스 선언
- has a : B has a A 클래스의 변수를 객체로 받아 객체 생성
다중상속
super
- 부모클래스의 변수나 함수를 받아올 때 사용
- 부모클래스의 생성자를 다시 선언시 사용
- 다이아몬드 상속시 중복 생성자 상속 방지
overiding
- 부모클래스가 가지고 있던 함수를 다시 정의해서 사용
overloading
- 함수의 이름은 같으나 argument의 갯수 차이로 다른 코드 실행
Getter & Setter
- 객체 내부 변수에 접근할 때 특정 로직을 거쳐 접근할 수 있도록 하는 방법
- getter : 속성 값을 가져오는 메서드
- setter : 값을 저장하는 메서드
- 메서드를 속성처럼 사용할 수 있음
property
decolator
non public (private)
- magling 방법으로 구현
- class 내부 변수에 직접 접근 불가
__
를 붙여 변수 선언- (객체명)._(클래스명)(변수명)으로 접근 가능
클래스 메서드
instance method
- 인스턴스를 통해 호출해서 사용
- self 파라미터 사용
- self 객체를 받음
class method
- 클래스를 통해서 사용
- cls 파라미터 사용
- cls 클래스를 받음
static method
- 클래스 안에서 선언되는 일반 함수
magic(special) method
- 클래스에서 객체로 만들어질 떄, 자동 생성 함수
- 객체 사이의 연산자 사용과 같은 코드 정의
- compare
__eq__
: ==__ne__
: !=__lt__
: <__gt__
: >__le__
: <=__ge__
: >=
- calculate
__add__
: +__sub__
: -__mul__
: *__truediv__
: /__floordiv__
: //__mod__
: %__pow__
: **
__repr__
__str__
__len__
'PYTHON > Basic' 카테고리의 다른 글
input output (0) | 2019.12.28 |
---|---|
regex (0) | 2019.12.28 |
operating system (0) | 2019.12.28 |
module (0) | 2019.12.28 |
function (0) | 2019.12.28 |