我有一堂课有一本字典。在
我创建了n个类的实例。在
当I+=字典中键上的值时,它会反映在我从该对象实例化的每个对象中。在
如何使该字典对该类的每个实例化都是唯一的?在
以下是我如何创建对象:for num in range(0, numOfPlayers):
listOfPlayerFleets.append(fleet.Fleet())
下面是如何调用addShip方法。我把它放在for循环中,并验证了currentPlayer int每次都在递增。在
^{pr2}$
下面是我的舰队对象中的代码作为示例。在class Fleet:
""" Stores Fleet Numbers, Represents a fleet """
shipNamesandNumber = {}
def addShip(self, type, numToAdd):
self.shipNamesandNumber[ships.shipTypesDict[type]['type']] += numToAdd
在pydev中,当我逐步调用这个函数时,每个带有shipNames和numbers的对象都会以numload递增。在
即使舰队对象在内存中的不同位置也会发生这种情况。在
我必须交另一个班的字典吗?我写了一个测试类来验证这一点:class Foo:
"""Testing class with a dictionary"""
myDictionary = {}
def __init__(self):
self.myDictionary = {'first':0, 'second':0}
def addItem(self, key, numToAdd):
self.myDictionary[key] += numToAdd
numOfFoos = 2
listOfFoos = []
for num in range(0, numOfFoos):
listOfFoos.append(Foo())
listOfFoos[0].addItem('first', 1)
listOfFoos[0].addItem('first', 2)
listOfFoos[1].addItem('first', 2)
print " This is the value of foo1 it should be 3"
print listOfFoos[0].myDictionary
print "This is the value of foo2 ot should be 2"
print listOfFoos[1].myDictionary
当一个字典被修改时,Foo类没有我的fleet对象修改所有字典的问题。在
所以这让我更加困惑。在