2017-11-25 3 views
2

Google에서 내 문제의 해결책을 찾기 위해 무엇을해야할지 모르겠으므로 여기에서 찾으려고합니다.Python : str 형식을 호출 가능 메소드로 변환

pygame으로 파이썬 3.5.2에서 Gui를 만들고 있습니다. 나는 currenctly 팝업 오류에 따라 다른 버튼 기능을 가지고 오류 팝업 작업입니다. 다른 클래스에서 인수로 실행해야하는 함수를 제공하려고합니다.

def i_want_to_call_this(self): 
    print("Button works.") 

def button_with_action(self, action): 
    self.button(self.action) 

다른 클래스는 버튼은 다음과 같이해야합니다 기능을하는 인자를 줄 것이다 :

코드는 다음과 같이 보이는 문제는 그러나 인수가 구문 분석됩니다

popup_instance.popup_with_action(i_want_to_call_this) 

문자열 형식으로 변환 할 수없고 호출 할 수 없습니다.

+1

'버튼'코드를 표시하십시오. 아마도 텍스트를 표시하기위한 첫 번째 인수로 텍스트가 필요합니다. – furas

답변

1

나는 메서드가 button이 무엇인지 모르겠다. (나는 인자로 전달 된 호출 가능한 버튼에 바인딩한다고 생각한다.) 그러나 그 이름을 사용하여 함수를 호출 할 수 있으려면 getattr을 사용해야한다. , 문자열로 전달 물론 아무것도의

def button_with_action(self, action): 
    dyn_created_callable = getattr(self, action) 
    self.button(dyn_created_callable) 

를 수행하여 직접

당신이 다음 사용하는 것이
def button_with_action(self, action): 
    self.button(getattr(self, action)) 

일에서 당신을 중지 다음과 같이 0

#... 
    self.button_with_action('i_want_to_call_this') 
+0

이것이 내가 찾고 있었던 것입니다. 고마워요! 잘 작동합니다. – Julian

+1

가능할 때까지 기다리고있었습니다. 너는 빨리 대답했다. :) – Julian