案例 网站/自己做网站难吗
我正在尝试创建新对象并将它们存储在词典中。但它似乎并没有像我期望的那样工作。在class Fruit:
name = ''
facts = []
def __init__(self, FruitName):
self.name = FruitName
facts = []
def addfact(self, FruitName):
if FruitName == 'banana':
self.facts.append('bananas contain potassium')
elif FruitName == 'orange':
self.facts.append('These are some facts about oranges')
else:
self.facts.append('Unrecognized fruit submitted')
Files = ['banana', 'orange', 'apple']
ObjLibrary = {}
for File in Files:
if not File in ObjLibrary:
ObjLibrary[File] = Fruit(File)
ObjLibrary[File].addfact(File)
print ObjLibrary['banana'].facts
print ObjLibrary['orange'].facts
print ObjLibrary['apple'].facts
我得到以下输出:
^{pr2}$
现在我怀疑是我没有按照我想要的方式显式创建三个对象,而是将字典中的所有三个项指向同一个对象。我的问题是:为什么?在循环的每次循环中,File应该有一个不同的值。更重要的是,我如何避开它?在我的“真实”代码中,创建一个全新的变量来存储每个对象是不实际的。在
谢谢你的帮助。在
凯西