和Java一样, Python 也是有一个中间转换代码的, 我们称起为bytecode. 最近才发现一个小模块(dis), 居然可以直接解析出bytecode, 对于研究和理解Python有很大的帮助

调用dis.dis函数反编译函数

def myfunc(alist):

return len(alist)

dis.dis(myfunc)

得到如下结果,

2 0 LOAD_GLOBAL 0 (len) # 加载全局对象到stack

3 LOAD_FAST 0 (alist) # 加载局部对象到stack

6 CALL_FUNCTION 1 # 调用函数

9 RETURN_VALUE # 返回值

命令行形式反编译py文件

命令行: python -m dis dis_file.py

a = 0

a += 1

print(a)

输出:

1 0 LOAD_CONST 0 (0)

3 STORE_NAME 0 (a)

2 6 LOAD_NAME 0 (a)

9 LOAD_CONST 1 (1)

12 INPLACE_ADD

13 STORE_NAME 0 (a)

3 16 LOAD_NAME 1 (print)

19 LOAD_NAME 0 (a)

22 CALL_FUNCTION 1 (1 positional, 0 keyword pair)

25 POP_TOP

26 LOAD_CONST 2 (None)

参考文件

python反编译命令_Python 反编译模块dis相关推荐

  1. python自动化办公模块有哪些-python常见的命令行交互自动化模块有哪些

    用Python写的程序,保存为.py,添加什么命令才能使我一般都是在后面加一个输入语句. python可不可以采用非命令行方式 可以,预先写好代码 使用pythonw.exe执行py文件可以不打开黑框 ...

  2. python程序需要编译么_python需要编译么

    一个经常听见的问题,那就是:Python是解释型的语言吗?它会被编译吗?这个问题没有想象中那么好回答.和很多人认识世界一样,习惯以一个简单的模型去评判一些事物.而事实上,里面包含了很多很多的细节. 通 ...

  3. python总结报告模板_Python中RE模块总结

    Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式.Emacs 风格模式可读性稍差 ...

  4. python中sys用法_Python中sys模块功能与用法实例详解

    Python中sys模块功能与用法.,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Pyth ...

  5. python更新的命令_python升级命令

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如果您细心对比过 json python sdk 和 xml python sd ...

  6. python如何选择命令_python 解析命令行选项

    问题: 程序如何能够解析命令行选项 解决方案 argparse 模块可被用来解析命令行选项 argparse 模块 argparse 模块是标准库中最大的模块之一,拥有大量的配置选项 dest 参数指 ...

  7. python pip工具命令_python 工具链 包管理工具 pip

    Installation mac下可以采用 brew,easy_install(python自带)等方式安装. centos下可以采用yum,easy_install等方式安装. 但是上面两种方式在系 ...

  8. python echo(msg) 字符串_python的subprocess模块

    1 os与commands模块 2 subprocess模块 3 subprocess.Popen类 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell. ...

  9. python写日志文件_Python logging日志模块 配置文件方式

    在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等; Python内置 非常强大的日志模块 ==> logging 今 ...

  10. python执行adb命令_Python实现对adb命令封装

    我就废话不多说了,大家还是直接看代码吧! #!/usr/bin/evn python # -*- coding:utf-8 -*- # FileName adbtools.py # Author: H ...

最新文章

  1. javascript动画函数封装(升级版)
  2. 如何修改product base category
  3. Codeforces 1065 E. Side Transmutations
  4. 计算机2010ppt试题,2010年职称计算机:PowerPoint2000试题及答案
  5. opencv有基于c语言的教程吗_VS2019配置opencv详细图文教程和测试代码的实现
  6. 斯坦福机器学习课程 Exercise 习题三
  7. CStatic类简介
  8. python输出字典_Python如何将字典键和值拆分为单独的列表?(代码示例)
  9. prototype中的$R函数的用法
  10. SAP QM 可以控制到没有收到Vendor 的certificate的话就不能做UD.
  11. 数值类型小数点后是否可以接零问题
  12. Servlet概述及其原理
  13. 9008刷机模式写入超时刷机帮_刷机帮教你优思高通刷机工具错误处理方法
  14. 一个月可以学会单片机嘛?单片机编程学多久?
  15. 先验 超验_三个世界的划分:经验、超验、先验
  16. 字节跳动资深面试官亲述:15个经典面试问题及回答思路,知乎上转疯了!
  17. 股票实战分析专题-金融量化初级练习使用
  18. 核心数据库保护安全技术实践
  19. 人工智能计算机技术图片,这是人工智能眼中它自己的样子
  20. 编写程序描述影视歌三栖艺人

热门文章

  1. 怎么用wps做区域分布图_wps演示制作漂亮的组织结构图
  2. CMM3学习笔记--常用专业术语
  3. 动态代理与静态代理区别
  4. Codeproject收藏
  5. 图书馆占座系统(四)
  6. 医院药品管理系统丨医药商城系统(Java+Web+MySQL)
  7. 大众点评运维架构图文详解
  8. 兄弟连php课件,兄弟连php课件
  9. 卸载mySQL数据库
  10. 分子动力学模拟软件_实惠的分子动力学模拟个人台式机装机和测试