求助:类的实例化对象是否可以同名同属性
由小甲鱼零基础入门学习python课程中的060类与对象Ⅲ 动动手编制菜单的题目 有些疑问:在同一个菜品可以重复点菜部分的代码,三次点单的类实例对象egg好像是作为了三个不同的对象,是否可以理解为类的实例化对象是否可以同名同属性? 解答:类的实例化对象是否可以同名同属性在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 小助理,如未能正确解答您的问题,请继续追问。 把egg理解为临时变量,每次循环中egg所指代的对象是不同的对象,这个时候原来的值也会被覆盖;但是因为原来的值已经存在了列表里,所以列表中将保留三个不同的Egg类示例(即三个不同的对象)
页:
[1]