dis模块
dis是“Disassembler”的缩写,即反汇编,即将机器的二进制内容,转换为汇编语言。
通常用途:代码调优,查看底层代码执行逻辑,基本很少用到
常用
dis.dis('')
这里可以通过dis模块分析代码底层执行逻辑来分析效率。
实践
>>> dis.dis('{}')
1 0 BUILD_MAP 0
2 RETURN_VALUE
>>> dis.dis('dict()')
1 0 LOAD_NAME 0 (dict)
2 CALL_FUNCTION 0
4 RETURN_VALUE
可以看到,明显{}是少执行一步(CALL_FUNCTION),从逻辑上来说,是更优;
同理可以比较[]和list()
>>> dis.dis('[]')
1 0 BUILD_LIST 0
2 RETURN_VALUE
>>> dis.dis('list()')
1 0 LOAD_NAME 0 (list)
2 CALL_FUNCTION 0
4 RETURN_VALUE
关于python语言执行
Python为动态语言(相对于java静态语言),代码先被编译为字节码后,再由Python虚拟机来执行字节码, Python的字节码是一种类似汇编指令的中间语言, 一个Python语句会对应若干字节码指令,虚拟机一条一条执行字节码指令, 从而完成程序执行