gpt4 book ai didi

python - 数独求解器中未定义全局名称 checkRows

转载 作者:太空宇宙 更新时间:2023-11-04 04:17:30 24 4
gpt4 key购买 nike

我的测试有一些问题。我不确定为什么我不断出错。我不熟悉使用类。

正在测试的文件。

class Sudoku_Checker:
def __init__(self,board):
self.board = board

def board_validater(self):
checkRows(self.board)
checkCols(self.board)
checkSquares(self.board)

return checkRows() == True and checkCols() == True and checkSquares() == True

def checkRows(self):
# compare = [1,2,3,4,5,6,7,8,9]
# for i in self.board:
# if i.sort() == compare:
# continue
# else:
# return False
return True

def checkCols(self):
return False

def checkSquares(self):
return True
# s = Sudoku_Checker()
# s.board_validater([
# [5, 3, 4, 6, 7, 8, 9, 1, 2],
# [6, 7, 2, 1, 9, 0, 3, 4, 8],
# [1, 0, 0, 3, 4, 2, 5, 6, 0],
# [8, 5, 9, 7, 6, 1, 0, 2, 0],
# [4, 2, 6, 8, 5, 3, 7, 9, 1],
# [7, 1, 3, 9, 2, 4, 8, 5, 6],
# [9, 0, 1, 5, 3, 7, 2, 1, 4],
# [2, 8, 7, 4, 1, 9, 6, 3, 5],
# [3, 0, 0, 4, 8, 1, 1, 7, 9]
# ])

这是测试文件。

import unittest
from ValidSudoku import *

class TestSum(unittest.TestCase):
def testwillWork(self):
"""
Check to return True
"""
grid = [ [5, 3, 4, 6, 7, 8, 9, 1, 2],
[6, 7, 2, 1, 9, 5, 3, 4, 8],
[1, 9, 8, 3, 4, 2, 5, 6, 7],
[8, 5, 9, 7, 6, 1, 4, 2, 3],
[4, 2, 6, 8, 5, 3, 7, 9, 1],
[7, 1, 3, 9, 2, 4, 8, 5, 6],
[9, 6, 1, 5, 3, 7, 2, 8, 4],
[2, 8, 7, 4, 1, 9, 6, 3, 5],
[3, 4, 5, 2, 8, 6, 1, 7, 9]]
checker_for_only_this_grid = Sudoku_Checker(grid)
self.assertTrue(checker_for_only_this_grid.board_validater())

if __name__ == '__main__':
unittest.main()

请给我一些提示谢谢。我不确定我是否以正确的方式组织我的代码。我只想在开始编码之前编写基本测试。

最佳答案

当你在一个类中定义一个函数作为成员函数时,例如

class blah:
...

def myfunc(self, args):
pass

def newfunc(self):
# self is how other members of the instance are passed in, hence
self.myfunc(args) # You must invoke it this way inside your class.

课外:

bla = blah() # instance of your class.
bla.myfunc(args) # your function called.

关于python - 数独求解器中未定义全局名称 checkRows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55148261/

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