2016-09-01 8 views
1

전보 봇에 사용할 수있는 명령 사전을 구성하는 방법은 무엇입니까? 좋은 프로그래머는 어떻게합니까? if 문을 수십 개 작성하는 것은 좋지 않은 생각이며 switch 문입니다.전보 봇 : 사용 가능한 명령의 원칙

는 지금 그것 switch를 사용하여 구현 같습니다

  1. 는 로봇은 switch
  2. 공정
  3. 사용자
에 응답을 전송 명령을
  • 그것을 찾는 명령을 수신

    그러나 수십 개의 명령이있을 때 switch 연산자 bec 유지하기 어렵다. 이 문제를 해결하는 일반적인 방법은 무엇입니까?

  • 답변

    1

    저는 파이썬 코더가 아니지만 사용하는 언어에 관계없이 associative array 데이터 구조로 문제를 해결해야하는 것으로 보입니다. 구조체의 실제 이름은 언어마다 다를 수 있습니다. 예를 들어 C++에서는 map, 파이썬에서는 .. dictionary! 따라서 여러 번 귀하의 질문에 관련 키워드를 썼습니다 (심지어 원래 언어로). 마음에 위의 베어링

    , 프로그램의 스케치는 다음과 같이 보일 수 있습니다 :

    #!/usr/bin/python 
    
    # Command processing functions: 
    def func1(): 
        return "Response 1" 
    
    def func2(): 
        return "Response 2" 
    
    # Commands dictionary: 
    d = {"cmd1":func1, "cmd2":func2} 
    
    # Suppose this command was receiced by the bot: 
    command_received = "cmd1" 
    
    # Processing: 
    try: 
        response = d[command_received]() 
    except KeyError: 
        response = "Unknown command" 
    
    # Sending response: 
    print response 
    
    +0

    나는 [장고] 같은 파이썬의 서버 측 프레임 워크에서 라우터 구현 될 것입니다 좋은 예를 추가하고 싶습니다 (HTTP : //www.django-rest-framework.org/api-guide/routers/). –