如何解决Mypy 在 if else 中定义类型时引发“无法分配多种类型”
在我们的测试中,我们测试了 numpy 的多个版本。旧版本没有我们想要在打字中定义的某些类 (np.random.Generator
),所以我选择根据检查 numpy 版本来定义类型:
# random generator
if np_version_under1p17:
RandomState = Union[int,ArrayLike,np.random.RandomState]
else:
RandomState = Union[int,np.random.Generator,np.random.RandomState]
但这会导致:
Cannot assign multiple types to name "RandomState" without an explicit "Type[...]" annotation
RandomState = Union[int,np.random.RandomState]
但是我们使用旧 numpy 版本的测试将失败。
定义 RandomState
的最佳方式是什么,但以这样一种方式定义它,以便它在我们的测试中适用于较新和较旧的 numpy 版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。