나는 어떤 데이터가 객체 Foo()
에 저장되어 있습니다.파이썬에서 새로운 함수의 자동 정의
Foo.data
은 n x m np.array의 목록입니다. 각 배열은 특정 시간에 실험 데이터를 나타냅니다. 배열은 m 개의 변수로 구성되며, n은 측정이 수행 된 다른 점의 수와 일치합니다.
우리는 우리가 우리의 처분에 변수 이름의 목록, 예를 들어 가지고 고려할 수 :
def Foo.P(self,x,time)
index_t=time_list.index(time)
index_x=var_names.index(x)
index_P=var_names.index(P)
return Foo.data[index_t][index_x,index_P]
질문 : 내가 좋아하는 뭔가를 정의하는 데이터를보다 쉽게 액세스 할 수 있도록하기 위해 좋아합니다
var_names=['x','volume','u','L_bar','rho','P',.....]
을 : 변수 목록이 고정되어 있지 않지만 변수가 다를 수 있다는 점을 감안할 때, 각 변수에 대해 명시 적으로 정의하지 않고 이전에 표시 한 일부 기능을 자동으로 정의 할 수 있습니까?
내 말은, Foo.P, Foo.volume, Foo.u, Foo.rho와 같이 함수 이름으로 주어진 변수의 값을 추출하는 것과 같은 많은 함수를 갖고 싶습니다. x, 시간) 위치를 지정합니다.
당신은'getattr를 사용할 수 있습니다)': http://stackoverflow.com/q/4075190/882697 – Plouff
['namedtuple'] (https://docs.python.org/2/library/collections.html#collections.namedtuple)을보십시오. –
나의 대답이 도움이된다면 그것을 받아들이는 것을 잊지 마십시오. :) –