为什么同一类的不同对象显示相似的结果?出路是什么?



我的代码是:

class Cereal:
def __init__(self,name,brand,fiber):
Cereal.name=name
Cereal.brand=brand
Cereal.fiber=fiber
def __str__(self):
return "{} cereal is produced by {} and has {} grams of fiber in every serving!".format(Cereal.name,Cereal.brand,Cereal.fiber)
c1=Cereal("Corn Flakes","Kellog's",2)
c2=Cereal("Honey Nut Cheerios","General Mills",3)
print(c1)
print(c2)

输出为:

Honey Nut Cheerios cereal is produced by General Mills and has 3 grams of fiber in every serving!
Honey Nut Cheerios cereal is produced by General Mills and has 3 grams of fiber in every serving!

我想知道如何为 2 个对象创建 2 个容器。如果你能说出原因,那将是一个很大的帮助。 谢谢

你的台词:

Cereal.name=name
Cereal.brand=brand
Cereal.fiber=fiber

应该是:

self.name=name
self.brand=brand
self.fiber=fiber

self是指Cereal类的当前实例。Cereal是指类本身。

正如@wjandrea所指出的,您还需要将传递给format的参数从Cereal.xxx更改为self.xxx

相关内容

最新更新