我有一个python函数test(),它会循环显示问题并提示答案并在结尾处对结果进行评分。我想传递不同的,但可选的修改test()函数,如shuffle()问题或反向()问题,或odds_only()等。当我尝试将这些函数传递到test()时,如此,我得到一个nameError。有人可以帮我理解我哪里出错了吗?
>>> my.test(mod=shuffle)
... NameError: name 'shuffle' is not defined
def test(self, mod=None):
if mod is not None:
return_value = mod()
def shuffle(self):
list_of_questions = list(self.dictionary.keys())
random.shuffle(list_of_questions)
return list_of_questions
答案 0 :(得分:2)
如果test和shuffle都是同一个类的方法,那么调用应该是:
my.test(mod=my.shuffle)