gpt4 book ai didi

python - 在 Python 中重新创建 "private"类变量

转载 作者:太空狗 更新时间:2023-10-30 01:58:39 24 4
gpt4 key购买 nike

我已经阅读了很多关于为什么 Python 没有真正私有(private)变量的 SO 线程,并且我理解大多数应用程序。

这是我的问题:我正在创建一个类项目。在本类(class)项目中,学生设计了一个进行多项选择测试的代理。我们希望能够立即对代理人的答案进行评分,以便代理人可以从他们对以前问题的错误答案中学习。因此,我们需要将每个问题的正确答案存储在程序中。学生在他们的本地机器上运行这些项目,因此他们可以看到所有测试人员的代码。他们无法修改它——当他们提交测试代码时,我们会覆盖他们对测试代码所做的任何更改。他们只是提交一个代表他们代理的新文件。

在 Java 中,这很简单。在 Problem 类中,有一个私有(private)的 correctAnswer 变量。 correctAnswer 始终存储问题的正确答案。代理只能通过 checkAnswer 方法读取 correctAnswer,并且为了调用 checkAnswer,代理必须实际给出问题的答案,以后不能更改。

我需要在 Python 中重新创建此行为,但到目前为止我不知所措。似乎无论程序中 correctAnswer 存储在何处,代理都可以访问它——我熟悉下划线约定,但在这个问题中,我需要代理不能访问正确的回答。我唯一能想到的是在我们测试学生的代码时将 correctAnswer 命名为不同的东西,这样他们的代理就无法预测它将被称为什么,但这是一个不优雅的解决方案。

有什么建议吗?代理能够读取 correctAnswer 是可以接受的,只要我们可以检测到他们何时阅读它(因此我们可以在那之后将“代理的答案”变量设置为只读......尽管那时我需要一种方法来做那也太棒了)。

最佳答案

改变规则。不要将正确答案存储在程序中。将正确答案存储在安全服务器上:

def checkAnswer(studentAnswer):
response = requests.get('http://teacher-server.example.edu/checkAnswer?%s'%studentAnswer)
return response.text == 'Yes'

关于python - 在 Python 中重新创建 "private"类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130345/

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