在Python中传递类之间的数据

时间:2016-12-17 07:27:54

标签: python class

我正在尝试在旧编程书中找到的练习任务,以增加我对Python中的类的知识。任务是创建一个程序,允许用户为学校设置一系列测试。每项测试必须包含不超过10个问题。任务表明,最好的方法是使用遏制,并使用课程“问题”。在课堂内'测试'

基本上,我应该建立一个名为Test的类,它会彻底清除整个测试的基础知识,然后是一个名为Quesion的类,它设置问题并将其传递回Test以包含在那里的数组中。我有两个主要问题。首先,如何获取Question类中的setQuestion对象以将数据传递到Test类中的Question数组。其次,我如何让setQuestion对象迭代变量numberofQuestions,因为它包含在Test Class中。

这是代码。不确定格式是否清楚,但Question类在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

1 个答案:

答案 0 :(得分:1)

我就是这样做的:

class Test(object):
       def __init__(self,id,marks):
             self.__testID = id
             self.__maxMarks = marks
             self.__questions = []
             self.__numberofQuestions = 0
             self.__level = ""
             self.__dateSet = ""

      def setQuestion(self,question):
             self.__numberofQuestions += 1
             self.__questions.append(question)

class Question(object):
      def __init__(self,id,text,answer,marks,topic):
                  self.__questionID = id
                  self.__questionText = text
                  self.__answer = answer
                  self.__marks = marks
                  self.__topic = topic

现在您可以将问题对象放入Test的__question数组中,如下所示:

if __name__ == "__main__":
       test = Test(1,100)
       test.setQuestion(Question(1,"Text","Answer",50,"Topic"))