andreahhhhhh 发表于 2025-2-11 09:52:45

求助:类的实例化对象是否可以同名同属性

由小甲鱼零基础入门学习python课程中的060类与对象Ⅲ 动动手编制菜单的题目 有些疑问:在同一个菜品可以重复点菜部分的代码,三次点单的类实例对象egg好像是作为了三个不同的对象,是否可以理解为类的实例化对象是否可以同名同属性?

FishC 发表于 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)


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

你可以通过打印它们的内存地址验证这一点:

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


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

tommyyu 发表于 2025-2-12 20:05:26

把egg理解为临时变量,每次循环中egg所指代的对象是不同的对象,这个时候原来的值也会被覆盖;但是因为原来的值已经存在了列表里,所以列表中将保留三个不同的Egg类示例(即三个不同的对象)
页: [1]
查看完整版本: 求助:类的实例化对象是否可以同名同属性