가정하자 내가 가지고있는 다음과 같은 클래스를 종속성을 생성합니다파이썬은 동적으로 클래스 인스턴스 사이에
class base(object):
def __init__(self, name):
self.name = name
self.last_x = 0.0
def calc(self, x):
return x
class A(base):
def calc(self, x):
return f_A(x)
class B(base):
def calc(self, x):
return f_B(x)
...
글자 각각의 클래스는 기본적으로 해당 글자 기능 f_A
, f_B
에 대한 래퍼입니다. 클래스 인스턴스는 상태 변수 self.last_x
을 포함하고 문자 기능은 상태 의존적 인 것으로 가정된다 (즉, 마르코프 체인 유형 프로세스).
서로 다른 기능적인 회선을 시험하기 위해 이러한 클래스의 인스턴스간에 종속성 체인을 정의하고 싶습니다. 우리는 숫자 입력 값 x
에 체인 [a, b]
을 계산하고 싶었 예를 들어, 우리는
a = A('firstnode')
b = B('secondnode')
res = b.calc(a.calc(x))
목표는 각 중간에서 결과에 액세스 할 수있는 반면, 임의의 긴 사슬이 작업을 수행하는 것입니다
을해야 할 것입니다 계산. 나는. 체인이 [a, b, c]
이라면 나는 [a]
과 [a, b]
의 접근 가능한 결과를 만들고 싶다. (이것이 내가 현재 구현 된 각 노드에 이름 문자열을 포함시킨 이유이다).
이 유스 케이스의 클래스와 데이터 구조를 설정하는 올바른 방법은 무엇입니까?
지금까지 여러 가지 사전을 다루는 상당히 무거운 솔루션이 있지만 사소한 것으로 느껴지고 분명히 뭔가 빠져있을 수도 있습니다.
그래서'[a, b, c]'가 있다면'res = c.calc (b.calc (a.calc (x)))'를 원합니까? – Marcin
네, 맞습니다. – wfh
A 클래스와 B 클래스에서'a (x)'와'b (x) '는 무엇입니까? – Marcin