python - 是一种将双索引实现为特殊方法 Python 的方法吗?
问题描述
我目前正在尝试实现一个数独求解器,我在其中创建了一个 9x9 棋盘和一个字典对象 sDict,其中包含棋盘中每个位置的所有候选集。在添加到板之前,我验证是否可以使用 sDict 将值放置在特定位置。这在ini方法中有效,因为 sDict 在将初始输入放入电路板时会更新其值。
但是,关于setitem特殊方法存在一个问题,在提供两个索引值时,它似乎无法按我的意图工作。似乎setitem方法只能在仅使用一个 [] 索引时调用,并且无论何时使用两个 [][] 索引,都完全忽略了更新我的板的覆盖方法。谁能解释一下为什么会这样,以及是否有比切换到单个索引更好的解决方案?
设置项代码如下:
def __setitem__(self,index1, index2 value):
if self.validate((index1,index2), value): # somehow getting through the check
self.board[index1][index2] = value
else:
ValueError("Value '%d' is not a valid input for this position" %value)
提前致谢!:)
解决方案
推荐阅读
- windows - SignTool 未获取证书
- imagemagick - 如何在单个单词处拆分文本屏幕截图?
- sql - 这是mysql代码,在初始化此变量时出现以下错误,请帮助我解决
- android - 在 Kotlin 多平台项目中构建 APK 不起作用:/ 它说 Type xxx.xxx.BuildConfig 被定义了多次
- machine-learning - BERTfinetuning:一次训练BERT分类模型对吗?
- mongodb - 更新密钥不存在或设置为空的所有文档 - Mongodb
- react-native - UseEffect 正确读取值,但如果在其他地方访问,则值未定义
- php - 当我尝试在 Laravel 8“从空值创建默认对象”中更新我的博客项目中的帖子时看到此错误,这是什么意思?
- kotlin - 如果分号在 kotlin 中是可选的,kotlin 编译器如何理解语句的结尾?
- apache-beam - 我找不到包含 org.apache.beam.sdk.io.aws2.sqs.SqsIO 类的 jar