랭킹으로 돌아가기
zpoint/CPython-Internals
CDive into CPython internals, trying to illustrate every detail of CPython implementation
python3cpythonpythonclearning-materialcpython-internalsinterpreter
주요 지표
스타 성장
스타
5.1k
포크
478
주간 성장
—
이슈
1
2k4k
2019년 4월2020년 6월2021년 9월2022년 11월2024년 2월2025년 5월2026년 7월
README
Cpython Internals
This repository contains my notes/blog for cpython source code
It attempts to illustrate every detail of CPython implementation
# based on version 3.8.0a0
cd cpython
git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3
The following content is suitable for those who have Python programming experience and are interested in the internals of the Python interpreter. For those who need beginner or advanced material, please refer to awesome-python-books
Table of Contents
Objects
- 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)
Modules
Lib
- re(regex)
- asyncio
Interpreter
- 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)
Extension
- 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
Grammar
Learning material
I only recommend materials I've read
- 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)
Contribution
All kinds of contributions are welcome
- submit a pull request
- if you want to share any knowledge you know
- post a new article
- correct any technical mistakes
- correct English grammar
- translation
- anything else
- open an issue
- any suggestions
- any questions
- correct mistakes
- anything else
License
관련 저장소