Я пытаюсь получить доступ к значениям self.left и self.right после процесса clust.append. Когда я писал для объекта в clust: print (object. dict ), он дает все значения, кроме self.left и self.right, где он предоставляет объект 'left': clusters.bicluster в 0x03C8DBB0 и 'right' : clusters.bicluster объект в 0x03C68250.
def hcluster(rows,distance=pearson):
distances={}
currentclustlid=-1
clust=[bicluster(rows[i],id=i) for i in range(len(rows))]
while len(clust)>1:
lowestpair=(0,1)
closest=distance(clust[0].vec,clust[1].vec)
for i in range(len(clust)):
for j in range(i+1,len(clust)):
if(clust[i].id,clust[j].id) not in distances:
distances[(clust[i].id,clust[j].id)]=distance(clust[i].vec,clust[j].vec)
d=distances[(clust[i].id,clust[j].id)]
if d<closest:
closest=d
lowestpair=(i,j)
mergevec=[(clust[lowestpair[0]].vec[i]+clust[lowestpair[1]].vec[i])/2 for i in range(len(clust[0].vec))]
newcluster=bicluster(mergevec,left=clust[lowestpair[0]], right=clust[lowestpair[1]],distance=closest,id=currentclustlid)
currentclustlid=-1
del clust[lowestpair[1]]
del clust[lowestpair[0]]
clust.append(newcluster)
for dd in clust: print(dd.__dict__)