5. Python3源码—字符串(str)对象
5.1. 字符串对象
字符串对象是“变长对象”。
5.1.1. Python中的创建
Python中字符串(strs)对象最重要的创建方法为PyUnicode_DecodeUTF8Stateful,如下Python语句最终会调用到PyUnicode_DecodeUTF8Stateful:
a = 'hello b = str('world')
5.1.2. PyUnicode_DecodeUTF8Stateful的C调用栈
词法解析,最终调到PyUnicode_DecodeUTF8Stateful,调用顺序如下:
// ast.c ast_for_expr =>ast_for_power =>ast_for_atom_expr =>ast_for_atom (case STRING) =>parsestrplus =&g

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
0. Python3源码—编译
0.1. 整体架构 在最高的层次上,Python的整体架构可以分为三个主要的部分: 左:Python提供的大量的模块、库以及用户自定义的模块; 右:Python的运行时环境,包括对象/类型系统(Object/Type structures)、内存分配器(Memory Allocator)和运行时状态信息(Current State of Python); 中:Python的核心——解释器(interpreter),或者称为虚拟机,包括词法分析(Scanner),语法分析(Parser),Compiler和Code Evaluator; 0.2. 目录组织 Include :该目录下包含了Python提供的所有头文件,如果用户需要自己用C或C++来编写自定义模块扩展Python,那么就需要用到这里提供的头文件; Lib :该目录包含了Python
- 下一篇
6. Python3源码—List对象
6.1. List对象 List对象是“变长对象”。 6.1.1. Python中的创建 Python中List对象最重要的创建方法为PyList_New,如下Python语句最终会调用到PyList_New: test = [1, 2, 3, 4, 5] 6.1.2. PyList_New的C调用栈 // pystate.c PyInterpreterState_New // ceval.c =>_PyEval_EvalFrameDefault (case BUILD_LIST) // listobject.c => PyList_New 6.1.3. PyList_New源码 // listobject.c PyObject * PyList_New(Py_ssize_t size) { PyListObject *o
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7