Python 源码分析
对 python 的底层机制进行分析,深入了解 python 的运行原理。
坏习惯的叛逆者
这个作者很懒,什么都没留下…
展开
-
【python】虚拟环境管理
sudo apt install python{版本号} python{版本号}-venv。source {虚拟环境文件夹}/bin/activate。python{版本} -m env {虚拟环境文件夹}rm -rf {虚拟环境文件夹}原创 2023-10-21 20:32:28 · 191 阅读 · 0 评论 -
Python 源码分析之函数机制
在 python 中函数也是一个对象typedef struct { PyObject_HEAD PyObject *func_code; /* 函数编译之后的 PyCodeObject, the __code__ attribute */ PyObject *func_globals; /* A dictionary (other mappings won...原创 2018-07-04 23:14:45 · 1414 阅读 · 0 评论 -
Python 源码分析之运行时环境
python 运行时环境运行环境是一个全局的概念,而执行环境就是指栈帧当运行时环境已经准备好的时候,执行第一行代码的函数就是 PyEval_EvalFrame 函数PyObject *PyEval_EvalFrame(PyFrameObject *f) { /* This is for backward compatibility with extension modu...原创 2018-07-04 23:02:26 · 2124 阅读 · 0 评论 -
Python 源码分析之字节码之基本操作
本文基于 Python 3.6.4 编译器生成字节码,你可通过如下代码片段得到 python 源码对应的字节码#!/usr/bin/env python# encoding: utf-8import sysimport disfilename=sys.argv[1]f = open(filename, 'rb')content = f.read()c = compile...原创 2018-07-04 23:05:25 · 1368 阅读 · 0 评论 -
python 源码分析之字节码工具
分析 python 字节码有一个趁手的工具非常重要,找了好久,看来分析 python 源码的博主远远不如 java 的多。 仅仅适用于 python 3。用法python parse.py test.py非常简单直观。#!/usr/bin/env python# encoding: utf-8# parse.pyimport dis, marshal, struct, sy...原创 2018-07-04 22:51:38 · 544 阅读 · 0 评论 -
python 源码分析之类型系统
类型系统一般对象是不能静态分配的,而 python 所有内建对象都是静态分配的typedef struct _object { _PyObject_HEAD_EXTRA Py_ssize_t ob_refcnt; struct _typeobject *ob_type;} PyObject;#ifdef Py_TRACE_REFS/* Define poin...原创 2018-07-04 23:00:02 · 508 阅读 · 0 评论 -
Python 源码分析之初体验
在 python 中,对象就是 C 中结构体在堆上申请的一块内存,一般来说, 对象不能静态初始化,并且也不能在栈上空间生存。唯一的例外就是类型 对象,python 中所有的內建的类型对象(整数类型对象,字符类型对象) 都是静态初始化的python 架构外部调用Core ModulesLibraryUser-defined ModulesPython Core...原创 2018-07-04 22:20:30 · 320 阅读 · 0 评论