gpt4 book ai didi

python - 在 Python 中的类之间传递数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:02 25 4
gpt4 key购买 nike

我正在尝试在一本旧编程书中找到的练习任务,以增加我对 Python 类的了解。任务是创建一个程序,允许用户为学校设置一系列测试。每项测试不得超过 10 个问题。该任务指出,最好的方法是使用包含,并将“问题”类放在“测试”类中

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

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

最佳答案

我会这样做:

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"))

关于python - 在 Python 中的类之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com