有什么方法可以使Mypy意识到我知道要处理的对象是什么类型,而无需在每个if语句中调用mkl_dfti.f90
?我想使用辅助函数来执行此类操作,但是即使我的辅助函数中有isinstance
,Mypy也会抱怨。我也尝试过使用isinstance
来解决这个问题,但是有类似的问题。
typing.Union
答案 0 :(得分:2)
考虑从此更改您的API:
def is_c(self) -> bool:
return isinstance(self, C)
对此:
def as_c(self) -> Optional[C]:
if isinstance(self, C):
return self
return None
这将完全避免问题。您可以这样使用它:
c_opt = b_or_c.as_c()
if c_opt is not None:
print(c_opt.c)