鱼C论坛

 找回密码
 立即注册
查看: 106|回复: 3

[已解决]求助:类的实例化对象是否可以同名同属性

[复制链接]
发表于 2025-2-11 09:52:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
由小甲鱼零基础入门学习python课程中的060类与对象Ⅲ 动动手编制菜单的题目 有些疑问:在同一个菜品可以重复点菜部分的代码,三次点单的类实例对象egg好像是作为了三个不同的对象,是否可以理解为类的实例化对象是否可以同名同属性?
最佳答案
2025-2-12 20:05:26
把egg理解为临时变量,每次循环中egg所指代的对象是不同的对象,这个时候原来的值也会被覆盖;但是因为原来的值已经存在了列表里,所以列表中将保留三个不同的Egg类示例(即三个不同的对象)
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-2-11 09:52:55 | 显示全部楼层
解答:类的实例化对象是否可以同名同属性

在Python中,类的实例化对象当然可以同名同属性。这种情况不会导致冲突,但是需要注意它们是不同的对象,有不同的内存地址。

例如:
class Dish:
    def __init__(self, name):
        self.name = name

# 三次创建同名同属性的对象
egg1 = Dish("egg")
egg2 = Dish("egg")
egg3 = Dish("egg")

print(egg1)
print(egg2)
print(egg3)

在上面的代码中,egg1egg2egg3 虽然有相同的属性值,但是它们是不同的对象,各自占据不同的内存空间。

你可以通过打印它们的内存地址验证这一点:
print(id(egg1))
print(id(egg2))
print(id(egg3))

这样就可以看到每个实例对象的内存地址是不同的,即使它们有相同的名字和属性。

如果仍有疑问或需要进一步帮助,请继续提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-2-12 20:05:26 | 显示全部楼层    本楼为最佳答案   
把egg理解为临时变量,每次循环中egg所指代的对象是不同的对象,这个时候原来的值也会被覆盖;但是因为原来的值已经存在了列表里,所以列表中将保留三个不同的Egg类示例(即三个不同的对象)

点评

顺便说一下,下次提问的时候记得贴代码  发表于 2025-2-12 20:05
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-23 20:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表