다른 클래스 메소드를 가리키는 함수 포인터 사전을 갖고 싶습니다. 그것을하는 가장 좋은 방법은 무엇입니까?파이썬 클래스와 메소드에 대한 포인터
class A():
command_map = {
"call func1 of object1": ("1", func1)
"call func1 of object2": ("2", func1)
}
def __init__(self, object1, object2):
self.O1 = object1
self.O2 = object2
def call(self, cmd):
t = self.command_map[cmd]
target = t[0]
func = t[1]
if target == "1":
resp = self.O1.func()
elif target == "2":
resp = self.O2.func()
else:
self._logger.warn("Unknown target %r\n" % target)
이 경우, eclipse는 func 변수가 사용되지 않는다고 강조 표시합니다. 그럼 어떻게 하시겠습니까? objectb의 funca() 또는 funcb()를 일부 입력 값에 따라 호출하려고합니다.
"command-map"에 self.O1을 넣을 수있는 방법이 있습니까?
'func'이란 무엇입니까? –
당신이'getattr'을 찾고 있다고 생각하지만, 당신이하려고하는 것을 완전히 이해하지 못합니다. –