python - 未声明的对象何时获得 ID?

标签 python theory

理论题

每个 Python shell 都有无需声明或创建即可使用的对象,例如 True、False、""、[]、{} 以及整数和 float 的任意组合。

这意味着您可以随时获取他们的 ID。

id(1)
id(42)
id('')

等等

当然,如果你试图获取一个未声明对象的id,你会得到:

id(myobject1)

Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    id(myobject1)
NameError: name 'myobject1' is not defined

因为 myobject1 没有指向任何东西,所以它没有定义,也没有 id。

然而,由于数字系统是无限的,因此可以在不声明的情况下使用无限多的对象。因此,所有未声明的对象在以某种身份在程序中使用之前都不可能具有 ID。

这些对象何时获得分配的 ID?

最佳答案

你误解了赋值的概念。

在赋值中,您将一个对象绑定(bind)到一个名称。分配给的所有名称都可以以任何需要的方式使用,未分配的名称不存在,因此不能指向任何东西(包括“无处”)。

使用 id(spam),您可以询问 spam 指向的对象,然后询问其 ID。

一个不存在的名称 spam 没有分配给它可以查询其 ID 的对象。

OTOH,每个对象都有一个 ID。

关于python - 未声明的对象何时获得 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863293/

相关文章:

python - 将嵌套字典列表转换为 pandas DataFrame

math - "Law of the Eight"是什么?

php - PHP中的接口(interface)有什么意义?

python - 在 Python 中覆盖字段的方法

python - 我们怎么称呼这个(新的?)高阶函数?

data-structures - 解释数据*结构*和数据*类型*之间的区别

regex - "modern"正则表达式的识别能力

python - 在 python 中,组合 3 个字典并按其中一个字典键排序的最有效方法是什么?

python - 从python中的子序列中获取所有可能的字符串

python - 这个 Python 表达式有意义吗?