메소드의 진입 점을 포함하는 테이블을 클래스 변수로 설치하는 방법은 어떻게됩니까?클래스 변수의 메소드 진입 점
는 설명 들어, 다음 -working- 코드를 살펴
class A(object):
def go(self, n):
method = self.table[n]
method(self)
def add(self):
print "add"
def multiply(self):
print "multiply"
table = {
1: add,
2: multiply,
}
>>> q = A()
>>> q.go(1)
add
는 그러나, 나는 많은 그것을 좋아하지 않아. 가독성을 위해 처음에는 테이블을 갖고 싶습니다. (실제 프로젝트는 훨씬 큽니다) method(self)
을 사용하는 호출이 마음에 들지 않습니다. 나는 그것이 매우 혼란 스럽다고 생각한다.
제 질문은 : 더 좋은 방법이 있습니까? 아니면 위의 코드가 자리에 있습니까?
감사합니다.
numue는 필요하지 않습니다. ric 인덱스는 사실 문자열이지만, 파이썬에서 유효하지 않은 문자를 포함 할 수 있기 때문에 메소드 이름과 다른 키가 필요합니다. 여러 키가 동일한 메소드에 매핑 될 수 있습니다. 즉, 두 번째 스 니펫은보기에 좋았습니다. . 감사 – deStrangis