最佳答案
我正在写一个人工智能状态空间搜索算法,我有一个通用类,可以用来快速实现一个搜索算法。子类定义必要的操作,算法完成其余的操作。
这里我陷入了困境: 我想避免一次又一次地重新生成父状态,所以我有以下函数,它返回可以合法应用于任何状态的操作:
def get_operations(self, include_parent=True):
ops = self._get_operations()
if not include_parent and self.path.parent_op:
try:
parent_inverse = self.invert_op(self.path.parent_op)
ops.remove(parent_inverse)
except NotImplementedError:
pass
return ops
函数默认情况下抛出。
有没有比捕获异常更快的检查函数是否定义的方法?
我在想要不要做点什么来检查一下目录里有没有礼物,但是看起来不太对劲。Hasattr 是通过调用 getattr 并检查它是否引发来实现的,这不是我想要的。