3 回答

TA贡献1856条经验 获得超5个赞
每个 Python 变量都是对对象的引用。该对象包括变量的类型信息。例如,当我们反复重新分配x“on the fly”的值和类型时,只需浏览一些可能性:
for x in [1, 1.0, "1", [1]]:
print(x, type(x))
输出:
1 <class 'int'>
1.0 <class 'float'>
1 <class 'str'>
[1] <class 'list'>
如果您想知道 Python 如何判断它1是一个 int1.0还是一个浮点数,这从输入字符串中很明显。语言处理器通常包含一个可以区分语言标记的标记器,以及在语言语法中解释这些标记的另一个模块。int 和 float 对象具有不同的标记格式……字符串、标点符号、标识符和任何其他语言元素也是如此。
如果您想了解有关该级别详细信息的更多信息,请研究如何解析计算机语言:大多数技术适用于大多数语言。

TA贡献1893条经验 获得超10个赞
正如 nm 在您的帖子下方评论的那样,变量在 Python 中没有类型。价值观。
至于在键入以下内容时如何确定整数与浮点数:
x = 1.5 y = 2
这是在解析阶段确定的。编译型语言和解释型语言实际上以相同的方式开始。
将代码发送到解释器/编译器的一般流程如下:
[source code] --> lexical analyzer --> [tokens] --> parser --> [abstract syntax tree] -->
解析器步骤检查诸如 'x' '=' '1.5' 之类的标记,并查找指示不同类型文字(如整数、浮点数和字符串)的模式。当实际的解释器/编译器获得抽象语法树(程序的树表示)时,它已经知道存储在 x (1.5) 中的值是一个浮点数。
所以需要明确的是,这部分过程对于解释器和编译器在概念上是相同的。
添加回答
举报