Python 如何在运行中为对象创建数据属性?

Python 如何在运行中为对象创建数据属性?,python,Python,- HTTPError对象最初没有属性“status”,即状态数据属性在HTTPError类定义中不存在。这意味着当我为HTTPError的实例分配内存时,不会为状态数据属性进行分配 那么,如何在下一行中为同一实例动态创建状态数据属性呢?我不知道是什么赋予了python这种灵活性,而这种灵活性在C++/Java 很遗憾,我直到第11章才明白这一点 Python的数据类型概念与C或Java不同。如果创建实例,Python不会为实例的数据成员分配内存。相反,当创建一个实例时,它会得到一个\uuu

-

HTTPError
对象最初没有属性“status”,即状态数据属性在
HTTPError
类定义中不存在。这意味着当我为
HTTPError
的实例分配内存时,不会为状态数据属性进行分配

那么,如何在下一行中为同一实例动态创建状态数据属性呢?我不知道是什么赋予了python这种灵活性,而这种灵活性在
C++/Java



很遗憾,我直到第11章才明白这一点

Python的数据类型概念与C或Java不同。如果创建实例,Python不会为实例的数据成员分配内存。相反,当创建一个实例时,它会得到一个
\uuu dict\uuu
属性,该属性指向将属性名称映射到值的字典。此词典与任何标准Python词典一样动态。如果你这样做

result.status = code

带有键
“status”
和值
code
的条目将添加到此字典。

Python的数据类型概念与C或Java不同。如果创建实例,Python不会为实例的数据成员分配内存。相反,当创建一个实例时,它会得到一个
\uuu dict\uuu
属性,该属性指向将属性名称映射到值的字典。此词典与任何标准Python词典一样动态。如果你这样做

result.status = code

带有键
“status”
和值
code
的条目将添加到此词典。

您还提到了“instance”。既然所有东西都是一个对象,那么可以安全地假设所有东西本身都存在
\uuuuuu dict\uuu
属性吗?@Vaibhav:No,
\uuuuu dict\uu
只存在于用户定义类的实例中。这就是为什么
i=42;i、 状态=代码
将失败。此外,您可以使用
\uuuuuu slots\uuuuu
阻止创建实例字典(有关详细信息,请通过谷歌搜索)。您还提到了“实例”。既然所有东西都是一个对象,那么可以安全地假设所有东西本身都存在
\uuuuuu dict\uuu
属性吗?@Vaibhav:No,
\uuuuu dict\uu
只存在于用户定义类的实例中。这就是为什么
i=42;i、 状态=代码
将失败。此外,您可以使用
\uuuuuu slots\uuuuu
阻止创建实例字典(有关更多信息,请通过谷歌搜索)。