我有一个不同块的二维数组,都继承自 Block。我想检查我点击的块是否是 Dirt 类型的块,如下所示:
clickedblock = getClickedBlock()
if isinstance(clickedblock, Dirt):
place a block
else:
don't place a block
我听说这isinstance
很糟糕,应该避免,因为它会在代码中创建分叉。什么时候isinstance
使用比较好?
对于我的问题,另一个更麻烦的解决方案是拥有一个名为“id”的 Block 字段,然后检查它是否等于某个表示 Dirt 的常量。但这听起来很糟糕,而且比简单的 . 更容易出错isinstance
。