私はPythonのクラスについての私の知識を増やすために古いプログラミングの本で見つけた練習問題を試しています。タスクは、ユーザーが学校の一連のテストを設定できるようにするプログラムを作成することです。各テストには10個以下の質問を含める必要があります。タスクは、これを行う最善の方法は、封じ込めを使用し、クラス 'テスト'のクラス '質問'を持っていると述べたPythonのクラス間でデータを渡す
基本的に、私はテスト全体の基本をdewfines Quesionと呼ばれるクラスを作成し、質問を設定してそこにある配列に含まれるTestに渡します。私は2つの大きな問題を抱えています。まず、QuestionクラスのsetQuestionオブジェクトを取得して、TestクラスのQuestion配列にデータを渡します。次に、setQuestionオブジェクトをどのように変数numberofQuestionsを反復させるかは、テストクラスに含まれています。
ここにコードがあります。それは、フォーマットから明らかだと確信したが、質問クラスではありませんTestクラス内にある:
class Test(object):
def __init__(self):
self.__testID = 0
self.__maxMarks = 0
self.__questions = []
self.__numberofQuestions = 0
self.__level = ""
self.__dateSet = ""
class Question(object):
def __init__(self):
self.__questionID = 0
self.__questionText = ""
self.__answer = ""
self.__marks = 0
self.__topic = ""
def setQuestion(self, questionID, questionText, answer, marks, topic):
self.__numberofQuestions = self.__numberofQuestions + 1
self.__questionID = self.__questionID
self.__questionText = self.__questionText
self.__answer = self.__answer
self.__marks = self.__marks
self.__topic = self.__topic
「self .__ questionID = self .__ questionID」で何をしようとしているのか分かりませんが、何もしません。 –
Testクラス内でQuestionクラスを定義するのはなぜですか?私にとって意味をなさない... –
1.なぜあなたのすべての属性にそれらの二重のアンダースコアを使用していますか?その名前付けスキームは、[チュートリアル](https://docs.python.org/3/tutorial/classes.html#private-variables)で説明されているように、名前のマングリングを呼び出すために使用されますが、実際にはここでは必要ありませんしたがって、コードを必要以上に複雑にするだけです。 –