2009-05-23 2 views
1

를 사용하여 파이썬에서 호출 rpc.serve. (함수 이름은 여기에) (params) ", 여기서 rpc는 XMLRPC 함수를 호출하는 데 사용하는 serverProxy 객체이고 serve.-function name은 XMLRPC에서 호출하는 메서드입니다. -섬기는 사람.동적 기능은 다음과 같은 내가, 생성자를 서브 루틴을 생성하는 데 사용할 클래스를 쓰고 있어요 XMLRPC

나는 Calling a function from a string with the function's name in Python을 보았지만 내 serverProxy 객체가 가지고있는 "원격 속성"이 무엇인지 알지 못하기 때문에 getattr() 함수를 사용하여 메서드를 검색 할 수 없습니다.

사전을 사용하여 주어진 함수를 호출하는 예제를 보았지만 String을 생성 할 때 함수 호출을 작성하여 함수를 동적으로 만들 수있는 방법이 없습니까? 문자열을 함수로 실행하는 것과 비슷합니까?

+0

을이 패턴을 원하는 이유는 무엇입니까? 왜 rpc.functionName (params) 아닌가요? –

+0

"serve"를 추가 한 이유는 서버의 기능을 논리적으로 그룹화하는 것 뿐이며 아무 기능이없는 것입니다. – Duveit

답변

2

당신은 때문에이 같은 기능이 작동합니다 호출 서버 프록시에서 함수 이름을 얻을 getattr를 사용할 수 있습니다

getattr(rpc, function_name)(*params) 
+0

네 말이 맞아! Didnt는 알고있다. 하지만 getattr()을 사용하지 않고 주어진 String을 메소드로 실행할 수 있는지 알고 싶습니다. 심지어 getattr() 메서드를 사용하는 분명한 프로가 보입니다. – Duveit

+0

당신은 eval이나 exec를 통해 "문자열을 실행할 수 있습니다. 그러나 그것은 엄청나게 삭제 될 것입니다. 아무리 많은 이득이 생기더라도 더 많은 단점을 감당할 수 있습니다. –

관련 문제