이 저장소는 cpython 소스코드에 대한 나의 노트/블로그 입니다.
cpython 구현의 모든 상세한 부분들을 설명하도록 할 것 입니다.
# 3.8.0a0 버전을 기반으로 합니다.
cd cpython
git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3
다음의 내용들은 파이쎤 프로그래밍 경험이 있거나 파이썬 인터프리터 내부 구현에 관심이 있는 사람들을 위한 것이며, 초보자나 고급 자료가 필요하다면 awesome-python-books 을 참고하세요.
- 객체들(Objects)
- 모듈들(Modules)
- 라이브러리(Lib)
- 인터프리터(Interpreter)
- 확장(Extension)
- 공부할 자료(Learning material)
- 기여(Contribution)
- 라이센스(License)
- dict
- long/int
- unicode/str
- set
- list(timsort)
- tuple
- bytes
- bytearray(buffer protocol)
- float
- func(user-defined method)
- method(builtin method)
- iter
- gen(generator/coroutine/async generator)
- class(bound method/classmethod/staticmethod)
- complex
- enum
- type(mro/metaclass/creation of class/instance)
- re(regex)
- asyncio
- gil(Global Interpreter Lock)
- gc(Garbage Collection)
- memory management
- descr(how does attribute access work/
__get__
/__getattribute__
/__getattr__
) - exception(exception handling)
- module(how does import work)
- frame
- code
- slots/
__slots__
(how does attribute initialized in the creation of class/instance) - thread
- PyObject(overview)
- C API(profile python code and write pure C extension)
- Cython(C extension)
- Boost C++ libaries (C++ extension)
- C++ extension
- integrate with NumPy
- bypass the GIL
읽어본 자료들만 추천할 것 입니다.
- CPython internals - Interpreter and source code overview(youtube video)
- < < Inside The Python Virtual Machine > >
- < < Python源码剖析 > >
- rushter(blog/eng)
- YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)
- Junnplus(blog/cn)
- manjusaka(blog/cn)
- aoik-Python's compiler series(blog/eng)
모든 기여는 환영입니다!
- pull request 제출하기
- 당신이 공유하기를 원하는 지식
- 새로운 내용 추가
- 기술적 결함 교정
- 영어 문법 교정
- 번역
- 그밖에 다른 무엇이든지
- issue 열기
- 제안
- 질문
- 실수 교정
- 그밖에 다른 무엇이든지