搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
NodeJS用作后端服务的优点、缺点分析_nodejs写后端优缺点
2
ReLU6_layer aten::relu6_ not exists or registered
3
【Linux】vi/vim编辑器
4
Linux 中的$* $@特殊变量介绍_linux $@
5
Cocos Creator 坐标转换_cocos creator 世界坐标转局部坐标
6
基于YOLO的自动驾驶目标检测研究综述
7
多模态大模型总结2(主要2023年)_improved baselines with visual instruction tuning
8
【React-Native开发3D应用】React Native加载GLB格式3D模型并打包至Android手机端_react native glwallpaper
9
linux基础学习笔记6_linux设置test1其注释为this is a test user创建用户test2,创建目录/
10
根据某列的值N复制 Pandas DataFrame 上的N行_dataframe 复制一行
当前位置:
article
> 正文
【Python旧时笔记 十】Python虚拟机对创建基本内置对象的执行过程
作者:笔触狂放9 | 2024-03-06 13:12:04
赞
踩
dis store_name
同样的,有demo.py代码如下:
i = 1
s = "Python"
d = {"1":1, "2":2}
l = [2, 3]
有test.py代码如下:
import dis
source = open('./demo.py').read()
co = compile(source, './demo.py', 'exec')
dis.dis(co)
输出如下:
1 0 LOAD_CONST 0 (1)
3 STORE_NAME 0 (i)
2 6 LOAD_CONST 1 ('Python')
9 STORE_NAME 1 (s)
3 12 BUILD_MAP 2
15 LOAD_CONST 0 (1)
18 LOAD_CONST 2 ('1')
21 STORE_MAP
22 LOAD_CONST 3 (2)
25 LOAD_CONST 4 ('2')
28 STORE_MAP
29 STORE_NAME 2 (d)
4 32 LOAD_CONST 3 (2)
35 LOAD_CONST 5 (3)
38 BUILD_LIST 2
41 STORE_NAME 3 (l)
44 LOAD_CONST 6 (None)
47 RETURN_VALUE
这里需要讨论的就是字典和列表的创建。
对于d = {"1":1, "2":2}这一语句,Python虚拟机首先是执行BUILD_MAP:
caseBUILD_MAP:
x=_PyDict_NewPresized((Py_ssize_t)oparg);
PUSH(x);
if(x!=NULL)continue;
break;
接着把键值对压栈,然后执行STORE_MAP:
caseSTORE_MAP:
w=TOP();/* key */
u=SECOND();/* value */
v=THIRD();/* dict */
STACKADJ(-2);
assert(PyDict_CheckExact(v));
err=PyDict_SetItem(v,w,u);/* v[w] = u */
Py_DECREF(u);
Py_DECREF(w);
if(err== 0)continue;
break;
因为刚才把键值对压栈了,所以现在栈顶是key,第二个是value,第三个是字典对象,栈指针-2,然后把键值对放入字典对象中。
接着再插入一个键值对,然后执行STORE_NAME,把字典对象d放入局部符号表中。
对于l = [2, 3]这一语句,Python虚拟机先是把两个元素压栈,然后执行BUILD_LIST,携带参数2:
caseBUILD_LIST:
x=PyList_New(oparg);
if(x!=NULL) {
for(; --oparg>= 0;) {
w=POP();
PyList_SET_ITEM(x,oparg,w);
}
PUSH(x);
continue;
}
break;
Python虚拟机根据命令参数决定出栈多少个元素放入列表中,最后一样是把列表对象l出栈,放入局部符号表中。
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
【雕爷学编程】
MicroPython
手册之
ESP32
-
CAM
物
联网
图像数据采集应用_
esp32
...
综上所述,
MicroPython
的
ESP32
-
CAM
物
联网
图像数据采集应用具有简化开发、图像采集能力和物
联网
连接等主要特...
赞
踩
article
Python -
Permission
Error: [Errno 13]
Permission
de...
报错信息
Permission
Error: [Errno 13]
Permission
deni
ed: "..."即 权限...
赞
踩
article
python
-用
pyinstaller
以及用
pipenv
安装虚拟环境时,都遇到
Permission
...
先上
解决办法
:
解决办法
很简单,也很气人,就是关闭360安全卫士就OK了,害得我搞了快一天,啊啊啊,生气呀!问题描述:把....
赞
踩
article
Python
迭代
器...
一、
迭代
器
迭代
是访问集合元素的一种方式。
迭代
器是一个可以记住遍历的位置的对象。
迭代
器对象从集合的第一个元素开始访问,直到...
赞
踩
article
Python
:
迭代
器
的
简单理解...
一、什么是
迭代
器
迭代
,顾名思义就是重复做一些事很多次(就现在循环中做
的
那样)。
迭代
器
是实现了__next__()方法
的
对...
赞
踩
article
Python
深
拷贝
和浅
拷贝
深
析...
1.可变对象与不可变对象创建变量:python创建一个变量,可以看作先创建了对象,然后在该对象上贴了一个变量名标签,也可...
赞
踩
article
python
-520表白
代码
,
我看谁说程序员不懂
浪漫
,
送你几套表白
代码
,
一步到位
_给
女朋友
的
代码
...
520到了
,
还被
女朋友
问送什么礼物吗?鲜花?口红?看电影?很俗
的
好不好
,
给你
女朋友
一个程序员
的
Surprise吧
,
来来来...
赞
踩
article
【
python
】代码
实现
计算天数
倒
计时
_
python
倒
数日
...
python
实现
计算考研
倒
计时
_
python
倒
数日
python
倒
数日
import dateti...
赞
踩
article
Python
第8章
课后练习
2 以
原点
为
中心
,绘
http
制
5
个
同心圆
,半径分别为20,40,60,8...
Python
课后练习
_
python
,
以
原点
位
中心
,
绘制
5
个
同心圆
python
,
以
原点
位
中心
,
绘制
5
个
同心圆
...
赞
踩
article
Python
· 助力冬奥:
turtle
绘制
奥运五环
_
turtle
海龟
aoyunwuhuanhuit...
hello,大家好,我是wangzirui32,今天我们来学习如何使用
turtle
绘制
奥运五环,开始学习吧!1. 代码1...
赞
踩
article
【
Python
】
python
乌龟
画图——利用
python
乌龟
绘画奥运五环_
turtle
画
运动会
海报...
使用
turtle
乌龟
绘制奥运五环。_
turtle
画
运动会
海报
turtle
画
运动会
海报 要求: 使...
赞
踩
article
python
——奥运五环绘制_
import
turtle
#导入库
coordinate
_x = [...
#奥运五环
import
turtle
coordA=[-11
0
,
0
,
11
0
,
-55
,
55]coordB=[-25
,
-25
,
...
赞
踩
article
Python
Turtle
绘图[难度2星]:奥运
五环
(用最简单
的
方法
实现
五环
套接
)_
turtle
画
五...
绘制
五环
的
代码网上很多,但是大部分代码没能
实现
五环
套接
;少数
实现
了
的
,代码也较难。本文用最简单
的
方法
实现
了
五环
套接
。_t...
赞
踩
article
python
广义
似然比
_
回归
五式第三式:定序
回归
——
手机
功能
对
消费者
偏好
的
影响
分析
(内含
报告
和Py...
0 目录1.简单
分析
报告
2.具体操作(1)数据读取和处理(2)描述性
分析
(3)假设检验与参数估计(4)模型选择(5)预测...
赞
踩
article
python
logistic
多标签,
python
中多类
logistic
回归
的
特征选择
...
当然,有几种方法可以选择您
的
特性。但有时下一个简单
的
方法可以帮助你。你可以在线性模型
的
帮助下评估你
的
特征
的
贡献(通过对结...
赞
踩
article
Python
基于BP
神经网络
实现多特征多
分类
_
python
基于给定
数据
集
,
采用三层bp
神经网络
方法...
本文介绍了利用BP
神经网络
实现对不同半径的圆进行多
分类
(3
分类
),特征即为圆的半径。输入层12节点,一个6节点的隐藏层,...
赞
踩
article
【运筹优化】带
时间
窗
约束
的
车辆
路径
规划
问题(
VRPTW
)详解 +
Python
调用
Gurobi
...
车辆
路径
规划
问题(Vehicle Routing Problem,VRP)一般指的是:对一系列发货点和收货点,组织调用一...
赞
踩
article
Python
:
离线
部署
python
环境,并
安装
第三方
包_
python
paho
离线
安装
...
离线
部署
python
环境,并
安装
第三方
包工作中,服务器一般是不会开放连接外网的,那么我们在
安装
一些软件和环境的时候,就会...
赞
踩
article
开发知识点-
Python
-
conda
...
使用
conda
来创建和管理不同的
Python
环境,并在这些环境中安装不同版本的
Python
。
conda
是一个...
赞
踩
article
python
虚拟环境
迁移
_
python
虚拟环境
能否移植到其他
服务器
吗...
python
运维
迁移
_
python
虚拟环境
能否移植到其他
服务器
吗
python
虚拟环境
能否移植到其他
服务器
吗 ...
赞
踩
相关标签
物联网
嵌入式硬件
单片机
python
MicroPython
ESP32-CAM
物联网图像数据采集应用
PermissionError
Python - PermissionError
Permission denied
开发语言
经验分享
几何学
pycharm
ide
网络