gpt4 book ai didi

python - 在 Python 中编码时,如何实现类似于 Haskell 类型系统的正确性保证?

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:31 24 4
gpt4 key购买 nike

使用 Haskell 的类型系统,我知道在程序的某个时刻,一个变量必须包含一个字符串列表的 Int。对于可编译的代码,类型检查器提供了某些保证,例如我不会尝试添加 Int 和 String。

是否有任何工具可以为 Python 代码提供类似的保证?

我了解并实践 TDD。

最佳答案

快速的回答是“不是真的”。虽然像 PyLint 这样的工具(这是非常好的顺便说一句)会给你很多帮助和好的建议,关于什么是好的 Python 风格,这不是你正在寻找的东西,它当然不是像 HM 类型推断这样的东西的真正替代品.

这个领域有一些有趣的研究项目,特别是 Jeremy Siek and colleagues 的 Gradual Typing和一些非常有趣的想法,比如 blame calculus瓦德勒和芬德勒。

实际上,我认为您可以实现的最佳效果是使用一些明智选择的运行时方法。使用 inspect module测试一个对象的类型(但要记住 Python 的鸭子类型等等)。自由使用 assert 语句。或者(可能是“和”)使用类似 Design by Contract using decorators 的东西.有很多方法可以实现这些习语,但这通常是在每个项目的基础上完成的。如果这对您很重要,您可能需要考虑这些方法是否以及如何影响程序的性能和资源使用。然而,已经做出了一些努力standardise像 DBC for Python 这样的技术,但这些还没有(还)被插入 cPython 主干。不过还是希望 :)

关于python - 在 Python 中编码时,如何实现类似于 Haskell 类型系统的正确性保证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com