我正在阅读《编译器工程》(Cooper、Torczon)第 3 版,第 5 章语法驱动翻译。它包含以下段落:
PYTHON 不提供类型声明。第一次使用名字 x 范围是其定义的发生。如果第一次使用为 x 分配了一个值,那么它 将 x 绑定到一个新的本地实体,其类型由分配的值定义。如果 第一次使用引用 x 的值,然后将 x 绑定到全局实体; 如果没有这样的 实体存在,那么定义使用就会创建实体。 如果程序员 程序员希望 x 是全局的,但需要在使用它之前定义它 可以为名称添加非局部声明,这确保 x 在 全球范围。
如何为未定义的变量创建实体?我认为这会导致名称错误。有人可以解释一下粗体子句指的是什么吗?请提供一个简单的示例并解释这与为现有全局变量或新的局部变量赋值有何不同?
根据我的经验,Python 没有类型声明,除了类型提示。变量可以随时更改类型。只需将 python 中的变量想象为一个神秘的盒子,而不知道它的属性是什么。