的,当然也从Python的角度介绍了Python中的协程。 这一次我们说一下Python模块的加载机制 ...
楔子 在上一章中,我们介绍了Python虚拟机中常见的字节码指令。但我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化,但是显然这是不够的,因为怎么能没有流程控制呢。下面我们来看看Python所提供的流程控制手段,其中也包括异常检测机制。 Python虚拟机中的if控制流 if字节码 if语句算是最简单也是最常用的控制流语句,那么它的字节码是怎么样的呢 当然我们这里的if语句指的是if ...
2020-08-21 01:26 0 456 推荐指数:
的,当然也从Python的角度介绍了Python中的协程。 这一次我们说一下Python模块的加载机制 ...
楔子 在上一篇中我们说到了Python中的对象在底层的数据结构,我们知道Python底层通过PyObject和PyTypeObject完成了C++所提供的对象的多态特性。在Python中创建一个对象,会分配内存并进行初始化,然后Python会用一个PyObject *来保存和维护这个对象 ...
楔子 不少编程语言中的"字符串"都是使用字符数组(或者称字符序列)来表示,比如C语言和go语言就是这样。 一个字节最多能表示256个字符,所以对于英文来说足够了,因此一个英文字符占一个字节即可 ...
楔子 Python 可以和 C 无缝结合,通过 C 来为 Python 编写扩展可以极大地提升 Python 的效率,但是使用 C 来编程显然不是很方便,于是本人想到了 Go。对比 C 和 Go 会发现两者非常相似,没错,Go 语言具有强烈的 C 语言背景,其设计者以及语言的设计目标都和 C ...
楔子 Python 和 C / C++ 混合编程已经屡见不鲜了,那为什么要将这两种语言结合起来呢?或者说,这两种语言混合起来能给为我们带来什么好处呢?首先,Python 和 C / C++ 联合,无非两种情况。 1. C / C++ 为主导的项目中引入 Python; 2. ...
楔子 当我们想要执行一个py文件的时候,只需要python xxx.py即可,但是你有没有想过这背后的流程是怎么样的呢?从这里开始我们就开始进入到Python虚拟机的环节了,之前都是在介绍Python中的一些内置对象,不过虚拟机的执行流程、以及背后的原理却更是值得我们关注的。 这里我们先来 ...
楔子 Python除了给我提供了很多的类之外,还支持我们定义属于自己的类,那么Python底层是如何做的呢?我们下面就来看看。 自定义class 老规矩,如果想知道底层是怎么做的,那么就必须要通过观察字节码来实现。 通过之前对函数机制的分析中,我们知道对于一个包含函数定义的Python ...
楔子 在上一篇博客中,我们说了Python函数的底层实现,并且还演示了如何自定义一个函数,虽然这在工作中没有太大意义,但是可以让我们深刻理解函数的行为。此外我们还介绍了如何获取函数的参数,而这一次我们就来看看函数如何调用的。 函数的调用 我们以一个非常简单的函数为例,看看它的字节码 ...