2010-07-28 6 views

답변

1

아마도 대신 행렬 목록의 목록을 사용

self.ematrix = [ [ Entry(self.top) for j in range(6)] # columns 
            for i in range(30)] # rows 

for i,row in enumerate(self.ematrix): 
    for j,elt in enumerate(row): 
     elt.grid(row=i,column=j) 
3

사용 getattr() : 루프에서

getattr(self, "e00").grid(row=0, column=0) 

또는 상응 :

getattr(self, "e"+str(i)+str(j)).grid(row=0, column=0) 

이 있지만 거기에 더 나은 해결책이 될 코드가 실제로 무엇을하고 있는지에 따라 수 있습니다.

6

이것은 올바른 방법이 아닙니다. 하나의 속성을 만들어 모든 데이터를 그 안에 넣습니다.

import numpy as np 
self.matrix = np.array((6, 30), Entry(self.top)) 

for row in self.matrix: 
    for elt in row: 
     elt.grid(...) 
+0

를이 더 나은 이유는 무엇입니까? – erkangur

+1

30 * 6 대신 하나의 변수를 가질 수 있기 때문에 추악하고 느린 문자열 조작 + getattr/setattr없이 요소를 조작 할 수 있습니다. 또한 작업에 적합한 도구이고 이미 존재하기 때문에 휠을 다시 발명 할 필요가 없습니다. – delnan

+0

numpy.array 오류 : 행렬 = numpy.array ((6,10), Entry (루트)) TypeError : 데이터 유형을 알 수 없음 – erkangur