Python虚拟机中描述器实现原理及源码分析是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2137个文字,预计阅读时间需要9分钟。
目录+ 从字节码角度描述描述器+ 描述器源代码分析+ 总结+ 从字节码角度描述描述器 在前文中,我们已经详细分析了描述器的使用和相关的应用。我们通常使用的描述器都是将字节码作为输入,然后输出描述信息。
目录
- 从字节码角度看描述器
- 描述器源码分析
- 总结
从字节码角度看描述器
在前面的内容当中我们已经详细分析了描述器的使用和其相关的应用,我们通常使用描述器都是将其作为类的一个类属性使用,而使用的方式就是a.attr,而这个使用方式使用的字节码如下所示:
Python 3.10.9 (main, Jan 11 2023, 09:18:18) [Clang 14.0.6 ] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import dis >>> dis.dis("a.attr") 1 0 LOAD_NAME 0 (a) 2 LOAD_ATTR 1 (attr) 4 RETURN_VALUE >>>
可以看到的是真正调用的字节码是LOAD_ATTR,因此只需要我们深入LOAD_ATTR指令我们就能够了解这其中所有发生的内容,了解魔法背后的神秘。
本文共计2137个文字,预计阅读时间需要9分钟。
目录+ 从字节码角度描述描述器+ 描述器源代码分析+ 总结+ 从字节码角度描述描述器 在前文中,我们已经详细分析了描述器的使用和相关的应用。我们通常使用的描述器都是将字节码作为输入,然后输出描述信息。
目录
- 从字节码角度看描述器
- 描述器源码分析
- 总结
从字节码角度看描述器
在前面的内容当中我们已经详细分析了描述器的使用和其相关的应用,我们通常使用描述器都是将其作为类的一个类属性使用,而使用的方式就是a.attr,而这个使用方式使用的字节码如下所示:
Python 3.10.9 (main, Jan 11 2023, 09:18:18) [Clang 14.0.6 ] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import dis >>> dis.dis("a.attr") 1 0 LOAD_NAME 0 (a) 2 LOAD_ATTR 1 (attr) 4 RETURN_VALUE >>>
可以看到的是真正调用的字节码是LOAD_ATTR,因此只需要我们深入LOAD_ATTR指令我们就能够了解这其中所有发生的内容,了解魔法背后的神秘。

