목록콘텐츠/파이썬 -구조 (5)
supergravity
__main__은 파이썬 인터프리터가 실행되는 스크립트의 위치를 나타내는 것입니다. 파이썬은 namespace를 통해 오브잭트와 name(변수)를 연결합니다. namespace는 딕셔너리 형태로 대부분 구현되어 있습니다. namespace 중 파이썬 인터프리터가 실행될 때 global namespace가 생성됩니다. global namespace는 globals()를 print 해보면 성분을 확인할 수 있습니다. 프린트해보면 키와 벨류로 구성된 딕셔너리 형태입니다. namespace의 키는 스크립트에 바로 작성할 수 있습니다. global namespace를 잘 보면 '__name__' : '__main__'가 저장되어 있습니다. namespace의 키는 스크립트에서 사용할수 있으니 print(__nam..
0. 시작 namespace와 scope개념은 파이썬의 클래스의 작동원리를 이해하는데 꼭! 필요한 요소입니다. 초급자의 경우 다음으로 미뤄도 괜찮은 일이지만. 파이썬 고수가 되기 원한다면 중요한 개념이니 빡세게 배워 봅시다. 이 튜토리얼은 파이썬 공식문서를 쉽게 설명하려고 노력했습니다. 그러면 시작해 봅시다. 1. namespace 1.1 정의 파이썬 공식문서에서 namespace의 정의를 찾아보면 "name 집합에서 object집합으로 가는 함수"로 정의되어 있습니다. 이게 도대체 무슨 말일까요? 파이썬에서 name은 변수를 말하고 object는 메모리에 올려진 데이터 또는 코드를 말합니다. 그래서 name에서 object로 가는 함수는 변수와 데이터를 연결한다로 해석할 수 있습니다. 컴퓨터 공학적인 ..
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개의 문자 파이썬을 사용하다 ..