42469
データに格納されているクラスごとに処理を分けたいです。今

```

    class Test():
        def test(self, user_code):
            (question, answer_code, type) = ans()
            if user_code == ans_code:
               return True
            else:
               return False
    
    class Array(Test):
        def ans(self):
    
            question = "TEST1"
            answer_code ="TEST1"
    
            return (question,answer_code,"Array")
    
    class For(Test):
        def ans(self):
    
            question = "TEST2"
            ans_code ="TEST2"
    
            return (question,ans_code,"For")
    
```

のようにコードを書きました。user_dataのデータベースに  
question_id | user_id | ans | type  
1 1 TEST1 Array  
2 2 TEST3 For という風にデータが格納されています。  
このuser_dataのデータベースのtypeにArrayが入っているときは、class
Arrayのansメソッドを呼び出し、Forが入っているときはclass
Forのansメソッドを呼び出したいです。user_code引数にuser_dataのデータベースのansの中身が入っています。  
そのようにデータベースの内容と呼び出したいクラスを紐づけるには上記のコードにどう追加すれば良いでしょうか？  
コードを実行すると、ans()メソッドが定義されていないと出ます。
CC BY-SA 3.0
2018-03-18T08:20:11.387
42467
2018-03-18T09:29:17.390
27691
question
python
データに格納されているクラスごとに処理を分けたい
コードと説明を読んでもこれをどのように使うのか、何をやりたいのかはいまいちわかりませんので、とりあえずPythonの文法レベルでの回答となります。

ans() が見つからないのはそのような関数を定義していないからです。ans()メソッドを呼び出したいのでしたら、

```

    (question, answer_code, type) = ans()
    
```

を以下のように修正してください。

```

    (question, answer_code, type) = self.ans()
    
```

ついでに次の行で参照している ans_code という変数も未定義です。

```

    if user_code == ans_code:
    
```

self.ans()の戻り値と比較したいのではないかとと想像されるので、もしそうであれば以下のように修正してください。

```

    if user_code == answer_code:
    
```

以上、ご確認ください。
CC BY-SA 3.0
2018-03-18T09:29:17.390
42469
2018-03-18T09:29:17.390
27410
42467
answer