확률 분포를 나타 내기 위해 (간체화 된) 클래스를 작성하고 있습니다. 내가 원하는 것은 유형과 매개 변수만으로 오브젝트 분배를 초기화하고 유형에 따라 할당 된 일부 기능이 있다는 것입니다. I 타입 (dist.pdf) 나는 그 람다 함수 얻을 수 있지만이 기능을 실행하면, dist.pdf (4.0) TypeError가 말을 실행하면 이제클래스 정의의 유형 오류
functions = {'exp':{
'parameters': ['l'],
'pdf': lambda x,p: exp(x/p[0])*p[0],
'cdf': lambda x,p: 1-exp(x/p[0]) },
'uniform':{
'parameters': ['x1','x2'],
'pdf': lambda x,p: 1/(p[1]-p[0]),
'cdf': lambda x,p: (x-p[0])/(p[1]-p[0]) }
}
class Distribution:
def __init__(self,dist_type,**parameters):
self.dist_type = dist_type
self.parameters = parameters
self.p = [ self.parameters[z] for z in functions[dist_type]['parameters'] ]
for key,val in functions[dist_type].items():
if key == 'parameters':
pass
else
setattr(self, key, lambda x:val(x,self.p))
dist = Distribution('exp',l=3.5)
는 '리스트'객체는 아니다 호출 가능.
사이드 노트에서 코드의 스타일/복잡성은 어떻습니까?
감사합니다. 언급 한 기술을 확인해 보겠습니다. 나는 그 함수가 매개 변수 세트에 의존하는 클래스를 원한다. 필자가 필요로하는 매개 변수가 'dist_type'에 의존하기 때문에 더 복잡 해졌다. 그래서 사전을 사용했다. – chuse