2013-10-09 3 views
0

저는 파이썬으로 PhoneBook에서 작업 중이며 사용자가 raw_input을 통해 인스턴스를 호출하도록하려는 클래스가 있습니다. 예를Python raw_input() 문자열을 인스턴스 이름으로 사용

class PhoneBook(): 

    def Add(self): 
     print "Name added" 

def main(): 
    pb = PhoneBook() 
    Input = raw_input() 
    #Here I want to call pb.add() (and in the future other alternatives) 
    #using the string Input. As I want it (but I know doesn't work): pb.Input[0] 
    #provided the user types Add 

를 들어

그것은 pb.Add를 호출하는 문자열을 사용할 수 있습니다()?

미리 감사드립니다.

답변

1

사용 getattr :

getattr(pb, Input)() 

getattr기능를 반환하고, 그것을 호출하지 않습니다. 따라서 여분의 ()이 끝에 있습니다.

몇 가지 다른 것들 : 당신이해야 반환"name added" 대신 인쇄의

  • .
  • 클래스에 대문자로 명명 된 변수를 그대로 둡니다. 기능 등을위한 소문자
+0

그래, 테스트를 위해서 인쇄가 있었어. 도움에 감사드립니다. – simtaxman

+0

@ ingen 생각 : p. 문제 : D – TerryA

+0

Add() 함수가 전화 번호부에 이름을 추가 할 것이므로 Add() 함수에 Input 부분을 보내고 싶습니다. 어떻게해야합니까? – simtaxman