# 8.8 创建一个 Code Object

`makecode()` 的任务是检查编译器状态和汇编器的一些属性，并通过调用 `PyCode_New()` 将这些属性放入 `PyCodeObject` 中。

变量名和常量作为属性放到 code object 中：

代码不翻译

你还可能注意到，字节码被送到 `PyCode_NewWithPosOnlyArgs()` 之前被送到 `PyCode_Optimize()`。此函数是 `Python/peephole.c` 中字节码优化过程的一部分。

窥孔（`peephole`）优化器检查字节码指令，并在某些情况下用其他指令替换它们。例如，有一个优化器，它可以删除 `return` 语句之后的任何无法访问的指令。
