我目前正在编写一个大型数独求解器算法,我遇到了一个奇怪的问题......在我的代码深处的某个地方,我有这个“if”语句来检查给定变量的类型。如果它是一个列表,我希望它进入 if 语句。
当我有这样的代码时:
if type(cell) == "list":
# some code...
它不会输入语句(我有一个 print() 可以确保这一点...... 但是有了这个:
if type(cell) == type(possibilities):
# some code...
它确实输入了代码...“可能性”是程序中较早分配的另一个变量,它始终是一个列表。 我还在“if 语句”之前有 print() 语句来告诉我单元格的当前类型,其中:
print(type(cell))
和一些打印出来的,正如预期的那样,“< class “list” >”
那问题是什么?如果您认为需要,我可能会在此处放置更多代码。我只是觉得最好不要,因为它真的很大。
最佳答案
你把它改成
if type(cell) == list:
更好的
if isinstance( cell, list ):
即使单元格是某种派生类型,后者也能正常工作。
关于algorithm - 数独求解器算法中的 type() 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390534/