2016-09-01 8 views
1

テレグラムボットの利用可能なコマンドの辞書を整理するにはどうすればいいですか?良いプログラマはどのようにそれをするのですか?私はifステートメントの数十を書くことは悪い考えであり、switchステートメントであることを知っています。テレグラムボット:利用可能なコマンドの略語

は今のところ、それはswitchを使用して実装されています:

  1. は、ボットはswitch
  2. プロセスに
  3. はユーザー
への応答を送信し、コマンドを
  • がそれを検索コマンドを受信します

    しかし、何十ものコマンドがある場合、switch演算子維持するのが難しくない。この問題を解決する一般的な方法は何ですか?

  • 答えて

    1

    私はPythonコーダーではありませんが、使用する言語に関係なく、associative arrayデータ構造を使用して問題を解決する必要があるようです。構造体の実際の名前は、言語によって異なる場合があります。たとえば、C++ではmap、Pythonでは.. 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

    私は[ジャンゴ]のようなPythonのサーバー側のフレームワーク内のルータ実装されるという良い例を追加したいと思います(http ://www.django-rest-framework.org/api-guide/routers/)。 –

    関連する問題