我有课程
class Dot:
def __init__(self, x, y):
self.x=x
self.y=y
我有类Cluster
class Cluster:
ic=0
List=[Dot]
colour=0
def __init__(self, Dot):
self.List[self.ic]=Dot
self.ic=self.ic+1
def includeDot(self, Dot):
self.List[self.ic]=Dot
self.ic=self.ic+1
其中包括点列表(列表)。
我有类ClusterMaker,其中是集群列表(以及其他一些程序,但这对于这个问题并不重要)
class ClusterMaker:
total=0
i=0
CList=[Cluster]
def addCluster(self,Cluster):
self.CList.append(Cluster)
最后,我的表单上有一个按钮,它开始创建点和簇
def onChoose(self):
# ClMaker=ClusterMaker()
self.total=self.ent.get().strip() #how many dots we haver
self.CM=ClusterMaker()
i=0
while (i < int(self.total)):
dot=Dot(randint(0, 575), randint(0,670))
clst=Cluster(dot)
clst.colour= randrange(100, 999, 15)
self.CM.addCluster(clst)
box.showerror('j', str(str(self.CM.CList[i].List[0].x)+str(clst.List[0].x)))
this box shows us x coord of every dot in our cluster list
self.canvas.create_oval(clst.List[0].x, clst.List[0].y, clst.List[0].x+10, clst.List[0].y+10, fill=str("#"+str(clst.colour)))
i=i+1
b=0
while(b<6):
box.showerror('j', str(self.CM.CList[b].List[0].x))
and this box shows us x coords too
b=b+1
但是我的名单上发生了什么?为什么当我要求第二次显示x coords时,它显示所有簇中所有点的相同x坐标?
答案 0 :(得分:1)
类属性实例化一次并在实例之间共享。您必须在__init__
:
def __init__(self, Dot):
self.List = [Dot]
self.List[self.ic]=Dot
self.ic=self.ic+1