목록콘텐츠 (30)
supergravity
0. 시작 namespace와 scope개념은 파이썬의 클래스의 작동원리를 이해하는데 꼭! 필요한 요소입니다. 초급자의 경우 다음으로 미뤄도 괜찮은 일이지만. 파이썬 고수가 되기 원한다면 중요한 개념이니 빡세게 배워 봅시다. 이 튜토리얼은 파이썬 공식문서를 쉽게 설명하려고 노력했습니다. 그러면 시작해 봅시다. 1. namespace 1.1 정의 파이썬 공식문서에서 namespace의 정의를 찾아보면 "name 집합에서 object집합으로 가는 함수"로 정의되어 있습니다. 이게 도대체 무슨 말일까요? 파이썬에서 name은 변수를 말하고 object는 메모리에 올려진 데이터 또는 코드를 말합니다. 그래서 name에서 object로 가는 함수는 변수와 데이터를 연결한다로 해석할 수 있습니다. 컴퓨터 공학적인 ..
표면적인 차이점 : class attributes vs instance attributes 표면적인 차이점을 관찰하기 위해 예를 들어 봅시다. class TestClass(): class_att = 0 def __init__(self, i): self.i = i one = TestClass(1) two = TestClass(2) 클래스를 먼저 정의를 하고 인스턴스 원, 투를 생성합니다. 생성된 원, 투는 "."을 이용하여 attribute에 접근할 수 있습니다. 또한 클래스에서 정의한 class_att에도 접근할 수 있습니다. 이 예에서 i는 instance attribute라고 합니다. 클래스 정의 시 정의한 class_att의 경우에는 class attribute라고 합니다. 신기한 점은 class ..
0. Object-Oriented Programming (OOP) OOP는 객체를 기반으로 하여 프로그래밍을 하는 방법을 말합니다. 여기서 말하는 객체는 클래스의 인스턴스입니다. 객체가 클래스의 인스턴스란 말이 무엇일까요? 먼저 임기의 집합이 있다고 상상을 해봅시다. 집합 안에는 생물들이 있습니다. 생물 중에는 사람과 나무들이 존재합니다. 사람들은 모두 2명이고 이름은 김과 이입니다. 사람들은 나무의 열매를 따먹으며 생활합니다. 나무는 사과나무 2개가 존재 하지만 높이가 다릅니다. 이를 OOP적으로 해석해 봅시다. 생물이라는 가장 큰 클래스가 있습니다. 이 클래스 안 해는 사람과 사과나무 클래스가 존재합니다. 사람과 사과나무 클래스는 생물이 클래스가 가지고 있는 고유의 특성을 가지고 있습니다. 사람클래스..
python : 누구나 알고있다. python은 프로그래밍 언어입니다. 그래서 파이썬은 코드를 작성하기 위한 기준이 되는 규칙들이 있습니다. 유투브나 블로그에 파이썬 튜토리얼 관련 내용들은 대부분 코드를 작성하기 위한 규칙들을 설명하고 있습니다. cpython : c를 이용하여 python을 구현하다. 그 반면 cpython은 c언어로 파이썬을 구현한 것입니다. 그래서 cpython은 python코드를 이해하고 한줄한줄 읽으며 cpu가 이해할 수 있게 번역하는 일을 합니다. 이러한 역활은 cpython이 인터프린터라고 불리게 만드는 이유입니다. cpython 말고도 python의 인터프린터의 역할을 하는 프로그램 들이 많이 있습니다. 예를 들어 pypy, ironpython........ 등등 note ..
1. 시작 파이썬은 메모리 관리를 자동으로 해주는 언어입니다. 그러면 우리는 왜??? 파이썬 메모리 관리에 대해서 배워야 하는 것일까요? 파이썬에서는 효율적인 메모리 관리를 위해 수만 줄의 코드를 사용하여 최적화해놓았습니다. 하지만 파이썬 최적화 코드에 대한 지식이 없다면 안 좋은 코드 습관이 생기게 됩니다. 이러한 무지성으로 생성된 코드 습관은 파이썬 고수들이 작성한 수만 줄의 코드를 냅다 버리게 됩니다. 그러면 파이썬의 메모리 관리가 어떻게 구현되는지 알아보고 더 나아가 좋은 코드 습관은 무엇인지 알아봅시다. 2. 파이썬은 어떻게 실행되나? 가장 먼저 파이썬이 어떻게 작동하는지 큰 그림을 그려 봅시다. 파이썬은 인터프린터 언어라 C처럼 컴파일을 하지 않고 한줄한줄 읽는다고 생각할 수도 있지만! 고수가..
그래서 파이썬에서 어케 메모리에 저장하는데? 파이썬 3 버전 이후로 str타입은 unicode를 이용하여 메모리에 저장을 합니다. 여기서 unicide란 사람의 언어를 컴퓨터의 언어인 2진법에 1대 1로 대응시킨 함수 또는 표를 말합니다. unicode에서 문자들은 1문 자당 4바이트 까지 사용됩니다. 만약 이를 그대로 사용하게 되면 많은 양의 문자를 사용할 때 메모리 관점에서 낭비될 수 있습니다. 이러한 메모리 소비를 줄이기 위해 성능을 향상하기 위해서 파이썬은 3가지 종류의 내부 표현방식을 사용하고 있습니다. * latin-1 encoding : 1바이트당 1개의 문자 * ucs-2 encoding : 2바이트당 1개의 문자 * ucs-4 encoding : 4바이트당 1개의 문자 파이썬을 사용하다 ..