我有一个类Map(简化):
from Enums import *
import Globals
import Tile
class Map:
tiles = [] #the actual map, it's a 2D list of Tile objects
for x in range(Globals.mapWidth):
for y in range(Globals.mapHeight):
self.tiles[x][y].addItem(Items.Foliage)
并且是Tile类:
class Tile:
items=[]
def __init__(self, type):
self.type = type
def addItem(self,i):
self.items.append(i)
我的问题是类Tile中的items []数组似乎在类的每个实例中共享。例如,在FOR循环结束时, 打印(LEN(self.tiles [X] [Y] .items) 每个瓷砖返回25。为什么会这样?我应该有25个大小为1的列表,但是在循环中打印列表大小会从0增加到25.有人可以解释一下这里发生了什么吗?非常感谢您的帮助:)
答案 0 :(得分:2)
您的items
是一个类属性,这就是为什么它似乎在所有实例之间共享。
class Tile:
def __init__(self, type):
self.items = []
self.type = type