在 Python 中,如果你想定义一个变量,你不必指定它的类型,这与 C 和 Java 等其他语言不同。
那么 Python 解释器如何区分变量并为其提供所需的内存空间,如 int
或 float
?
最佳答案
在 Python 中,所有值都是具有内置类型信息的对象。变量是对这些值的引用。所以它们的类型是“动态的”,正好等于它们在特定时刻碰巧指代(指向)的类型。
只要为变量的内容分配了内存,就会有一个值可用。由于它有一个类型,因此所需的内存量是已知的。
引用(变量)本身总是占用相同数量的内存,无论它们指向什么,因为它们只包含一个概念地址。
这确实意味着在
def f (x):
print (x)
x 没有类型,因为它还没有特定的值。 好处是这非常灵活。 缺点是编译器发现错误的手段有限。 出于这个原因,Python 最近丰富了 type hints . mypy 等工具允许静态类型检查,即使解释器不需要它。 但程序员有时会这样做,尤其是当她在团队中工作时,在模块边界 (API) 处。
关于python - 了解变量类型、名称和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917988/