gpt4 book ai didi

python - 为什么 python 允许为同一个类创建不同的属性集?

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:54 27 4
gpt4 key购买 nike

我刚开始使用 python,在 java 中,同一类型的两个不同实例具有不同的值,但它不允许它们具有不同的属性。但是,

class Point:
pass

p1 = Point()
p1.x = 0
p1.y = 0
p2 = Point()
p2.z = 0
p2.w = 1355135

此代码不会产生任何错误。所以我假设它是一种语言功能。但是我不明白为什么 python 允许两个相同类型的实例具有不同的属性?

它对设计代码有何帮助?

最佳答案

因为Python是一门动态语言。 Python 对象主要是一个字典(包含实例属性)+ 对基类(也是对象)的引用 + 几个钩子(Hook),当它们不存在于实例的字典中时,它们会在基类上查找类属性。 FWIW 如果需要,您甚至可以在运行时更改对象的类型。

它如何帮助设计代码?好吧,能够在运行时动态添加/替换任意实例和类属性(包括方法)使得某些问题的生活变得更加容易。

关于python - 为什么 python 允许为同一个类创建不同的属性集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749054/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com