반응형

파이썬 19

파이썬(python) - 이터레이터(Iterator)

이터레이터(Iterator)란? 이터레이터는 순서대로 다음 값을 리턴할 수 있는 객체를 의미합니다. 자체적으로 내장하고 있는 next 메소드를 통해 다음 값을 가져올 수 있습니다. 여기서 '순서대로'라는 말 때문에 list, tuple과 같은 타입의 객체를 생각하셨을 수도 있는데, 이것과는 다릅니다. 자세한건 아래에서 알아봅시다. 선행학습 : 컬렉션(Collection) 타입과 시퀀스(Sequence) 타입 ​ 컬렉션 타입 - list, tuple, set, dictionary와 같이 여러개의 요소(객체)를 갖는 데이터 타입 ​ 시퀀스 타입 - list, tuple, range, str등과 같이 순서가 존재하는 데이터 타입 Iterable VS Iterator 내부 요소(member)를 하나씩 리턴할 수..

파이썬 2020.12.28

파이썬(python) - MRO(Method Resolution Order)

MRO(Method Resolution Order)란? MRO는 파이썬의 상속과 관련있는 개념입니다. 직역하자면 '메소드 결정 순서'정도가 되겠네요. 파이썬은 기본적으로 다중 상속을 지원합니다. 상속받은 부모 클래스가 서로 겹치지 않는 메소드 네임을 가지고 있다면 딱히 문제될 것이 없습니다. 하지만 만약 부모 클래스들이 똑같은 이름의 메소드를 가지고 있다면 이름부터 무시무시한 죽음의 다이아몬드(the Deadly Diamond of Death) 문제가 발생하게 됩니다. 죽음의 다이아몬드는 다중 상속을 받을 때, 부모 클래스에 동일한 이름의 메소드를 호출하려 할 때 어떤 부모의 메소드를 호출해야 할 지 모르기 때문에 발생하는 문제입니다. 한 마디로 정리하면 하나의 구문이 두 가지 이상의 의미로 해석 될 수..

파이썬 2020.12.12

파이썬(python) - 컴프리헨션(Comprehension) 문법

컴프리헨션(Comprehension) 문법이란? 컴프리헨션은 파이썬의 자료구조(list, dictionary, set)에 데이터를 좀 더 쉽고 간결하게 담기 위한 문법입니다. 여기서 말하는 '쉽고 간결하게' 데이터를 담는 방법이란 반복문과 조건문을 결합하여 하나의 구문으로 만들어 담는 것을 의미합니다. 처음 만나면 그 기괴한 생김새에 당황하실 수 있지만, 익숙해지만 정말 편하고 좋은 문법입니다. 리스트 컴프리헨션(List Comprehension) 리스트에 순차적으로 1부터 10까지의 값을 저장하고 싶을 때 우리는 어떻게 할 수 있을까요? 가장 단순한 방법은 빈 리스트를 만들고 append 함수로 하나씩 추가하는 방법입니다. data = [] data.append(1) data.append(2) ... ..

파이썬 2020.11.25

파이썬(python) - 네임 맹글링(name mangling)

네임 맹글링(name mangling)이란? 네임 맹글링은 짓이기다(mangle)라는 어원에서 유추할 수 있듯이 파이썬이 변수/함수의 이름을 짓이겨서 다른 이름으로 바꿔버리는 것을 말합니다. 맹글링을 적용하고 싶은 변수/함수명 앞에 언더바(_)를 두 개 붙여서 적용할 수 있습니다. 맹글링에 대해서 잘 모르시는 분들은 이전 포스팅의 4-3문단을 참조해주세요. 파이썬(python) - _(언더바, 언더스코어) 파이썬에서 _(이하 '언더바'로 통일)의 역할 다른 언어와 다르게 파이썬에서 언더바는 Snake case로 네이밍을 할 때 외에도 다양한 사용처가 있습니다. 이는 아래와 같이 크게 4가지로 분류할 수 있 tibetsandfox.tistory.com 오늘 포스팅에서는 맹글링을 언제 사용하는지에 대해서 간..

파이썬 2020.10.30

파이썬(python) - _(언더바, 언더스코어)

파이썬에서 _(이하 '언더바'로 통일)의 역할 다른 언어와 다르게 파이썬에서 언더바는 Snake case로 네이밍을 할 때 외에도 다양한 사용처가 있습니다. 이는 아래와 같이 크게 4가지로 분류할 수 있습니다. ​ 1. 인터프리터에서의 마지막 값 2. 무시하는 값 3. 숫자 리터럴의 자릿수를 구분하는 역할 4. 네이밍 1. 인터프리터에서의 마지막 값 우선 첫 번째로 ​인터프리터 내에서의 마지막 값을 의미합니다. >>> 1+1 2 >>> _ + 2 4 2번째 명령줄의 언더바가 바로 윗줄의 2를 의미합니다. 너무 간단하니 바로 넘어가겠습니다. 2. 무시하는 값 여기서 무시하는 값이란, 튜플 등을 언패킹 할 때 특정 값을 버리는 용도로 언더바를 사용할 수 있다는 의미입니다. n_tuple = (1, 2, 3,..

파이썬 2020.10.30

파이썬(python)이란? - 파이썬의 특징

파이썬(python)이란? 파이썬은 1991년 발표된 인터프리터 언어로 귀도 반 로섬(Guido Van Rossum)이 창시하였습니다. C나 Java와 같은 다른 언어에 비해 문법이 쉽고 직관적이기 때문에 프로그래밍 입문자에게 권장되는 언어이며 딥러닝, 데이터 사이언스 관련 프레임워크와 라이브러리가 잘 구비되어 있기 때문에 해당 분야에 관심있는 사람들에게도 각광받는 언어입니다. 파이썬의 특징 1. 쉬운 난이도 - 상기했듯 프로그래밍 입문자에게 권장되는 만큼 매우 쉬운 문법 체계를 가지고 있습니다. "Hello, World!" 출력을 기준으로 C와 비교를 해 볼까요? #include int main(){ printf("Hello, World!\n"); return 0; } C언어로 작성한 "Hello, W..

파이썬 2020.10.13

파이썬(python) - 데코레이터(Decorator)

데코레이터(Decorator)란? 데코레이터는 어떤 함수를 인자로 받아 꾸며준 후 다시 함수로 리턴하는 함수입니다. 여기서 꾸며준다는 의미는 함수의 앞, 뒤로 특정 로직을 추가하거나 하는 행동을 의미합니다. 함수 내부에 변화를 주지 않고 로직을 추가하고 싶을 때 사용합니다. 단, 데코레이터는 꾸며주는 함수의 내부에 직접적인 수정이나 로직 변환을 가할 순 없습니다. * 데코레이터를 이해하기 위해선 일급 객체(First class citizen)와 클로저(Closure)에 대한 이해가 필요합니다. 해당 개념에 대해 잘 모르시는 분들은 이전 게시물을 참조해주세요. 파이썬(python) - 일급 객체(first-class citizen) 일급 객체(First-class citizen)란? 일급 객체는 OOP에서..

파이썬 2020.10.09

파이썬(python) - 클로저(Closure)

*글을 들어가기 앞서 클로저를 이해하기 위해선 일급 객체(first-class citizen)에 대한 이해가 필요합니다. 일급 객체에 대해 잘 모르시는 분은 아래 링크를 참조해주세요. 파이썬(python) - 일급 객체(first-class citizen) 일급 객체(First-class citizen)란? 일급 객체는 OOP에서 사용되는 개념 중 하나로 아래의 조건을 만족하는 객체를 의미합니다. 1. 변수 혹은 데이터 구조(자료구조) 안에 담을 수 있어야 한다. 2. 매개변 tibetsandfox.tistory.com 클로저(Closure)란? 클로저는 어떤 함수의 내부 함수가 외부 함수의 변수(*프리변수)를 참조할 때, 외부 함수가 종료된 후에도 내부 함수가 외부 함수의 변수를 참조할 수 있도록 어딘..

파이썬 2020.10.09

파이썬(python) - 일급 객체(first-class citizen)

일급 객체(First-class citizen)란? 일급 객체는 OOP에서 사용되는 개념 중 하나로 아래의 조건을 만족하는 객체를 의미합니다. 1. 변수 혹은 데이터 구조(자료구조) 안에 담을 수 있어야 한다. 2. 매개변수로 전달할 수 있어야 한다. 3. 리턴값으로 사용될 수 있어야 한다. 파이썬에서의 일급 객체 파이썬에서는 함수도 위의 일급 객체의 조건을 만족합니다. 즉 함수를 변수에 할당할 수 있고, 매개변수로 전달도 가능하며, 리턴 또한 가능합니다. 이는 추후 클로저(closure)와 데코레이터(Decorator)를 이해하는데 필수적인 개념이므로 한번 짚고 넘어가 봅시다. ​ 1. 변수 혹은 데이터 구조 안에 함수를 담을 수 있다. def func1(a, b): # 두 수를 더한 값을 리턴하는 f..

파이썬 2020.10.09
반응형