오구의코딩모험

[Python] Data Structure, OOP 본문

프로그래밍 공부

[Python] Data Structure, OOP

오구.cpp 2023. 1. 5. 19:42
반응형

boostcourse 인공지능(AI) 기초 다지기 --  파이썬 다지기

리스트를 이용한 스택과 큐

스택(Stack)

나중에 넣은 데이터를 먼저 출력, Last In First Out(LIFO)

입력을 PUSH, 출력을 POP

리스트에서는 append, 출력은 pop()

 

큐(Queue)

먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조, First In First Out(FIFO)

리스트에서는 append, 출력은 pop(0)

 

 

튜플과 집합

튜플(Tuple)

리스트와 동일하게 사용하나 값의 변경이 불가능한 리스트, 표현은 [ ] 가 아닌 ( ) 를 사용

값이 하나인 Tuple은 반드시 (1,) ",'를 붙여야함.

(1) 은 일반 정수로 인식

 

집합(Set)

값을 순서없이 저장, 중복 불허하는 구조

remove() 삭제, discard() 삭제 → 차이점 : 없는 값을 지우려 할 때, 에러 표시(remove) - 정상 종료(discard) 

union 합집합, intersection 교집합, difference 차집합 함수 존재

 

 

사전(Dictionary)

데이터를 저장할 때, 구분지을 수 있는 값을 함께 저장

구분을 위한 데이터 고유값을 Identifier 또는 Key 라고 함

Key 값을 활용하여, 데이터 값(Value)를 관리함

keys(), values(), items()을 이용하여 값 출력

 

 

Collection 모듈

List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조(모듈)

 

Deque

Stack과 Queue를 지원하는 모듈

- 기존 List보다 효율적인 자료구조 제공 - 처리 속도가 비교적 빠름

- rotate,reverse 등 Linked List의 특성을 지원함

- List의 모든 함수 지원

 

Defaultdict

- Dict type의 값에 기본 값을 지정, 신규값 생성 시 사용하는 방법

 

Counter

- Sequence type의 data element들의 갯수를 dict 형태로 반환

 

Namedtuple

- Tuple 형태로 Data 구조체를 저장하는 방법

- 저장되는 data의 variable을 사전에 지정해서 저장함

 

 

 

 

객체 지향 언어의 이해

객체지향 프로그래밍(Object-Oriented Programming), OOP

 

클래스와 객체(Class, Object)

객체는 실생활에서 일종의 물건 속성(Attribute)와 행동(Action)을 가짐

OOP는 이러한 객체 개념을 프로그램으로 표현

속성은 변수(Variable), 행동은 함수(Method)로 표현

 

설계도에 해당하는 클래스(Class)와 실제 구현체인 인스턴스(Instance)로 나눔

 

Attribute 추가는 __init__(객체 초기화 예약함수), self를 함께 사용하여 할 수 있다.

__str__ 예약함수는 return 할 문자열을 print 해준다.

__add__ 예약함수는 파라미터로 받은 값을 더해서 return 해준다.

 

Methon 추가는 기존 함수와 같으나, 반드시 self를 추가해야만 class 함수로 인정

 

 

상속(Inheritance)

부모클래스로 부터 속성과 Method를 물려받은 자식 클래스를 생성 하는 것

super() - 부모클래스의 객체 사용

 

다형성(Polymorphism)

같은 이름 메소드내부 로직을 다르게 작성

부모클래스로부터 상속받은 자식 클래스에서 자주 볼 수 있음

 

가시성(Visibility)

객체의 정보를 볼 수 있는 레벨 조절

누구나 객체 안에 모든 변수를 볼 필요가 없음

캡슐화 또는 정보은닉

 

변수 이름 앞에 __ 를 붙여 Private 변수로 선언하여 타객체가 접근하지 못하게 설정

@property, property decorator로 숨겨진 변수를 반환하게 해준다.

 

 

데코레이터(Decorator)

일등함수 또는 일급 객체(First-class objects)

변수나 데이터 구조에 할당이 가능한 객체

파라미터로 전달이 가능 + 리턴 값으로 사용

python의 함수는 일급함수

 

Inner function

함수 내에 또 다른 함수가 존재

closure : inner function을 return 값으로 반환

 

Decorator function

@함수명 을 이용하여 복잡한 클로져 함수를 간단하게 표현한다.

 

반응형
Comments