提供代码契约和断言的库。

code-contracts的Python项目详细描述


code contracts是一个提供以下功能的库:

  1. 合同
    在输入函数或方法时强制要求的函数-通常也称为preconditions
  2. 断言
    在函数或方法主体中施加要求的函数。这不是一套完整的断言; 相反,它们是对unittest.testcase

这个库的目标不是使python成为静态类型语言。相反,它旨在帮助您定义 在代码执行之前,应该从代码中获取,这样您就可以更容易地跟踪和防止错误。

下面是如何使用合同:

fromcontractsimportcontractdefbuild_rocket(name,model,company):contract.is_not_empty(name)contract.is_greater_than(model,0)contract.is_not_empty(company)print("You built a {0} {1} rocket from {2}.".format(name,model,company))if__name__=="__main__":build_rocket("Falcon",9,"SpaceX")

下面是如何使用断言对上述函数进行单元测试:

importunittestfromcontractsimportassertionclassRocketTests(unittest.TestCase):deftest_build_rocket(self):assertion.does_not_raise(ValueError,build_rocket,"Falcon",9,"SpaceX")

code contracts正式支持python 3.3及更高版本。

安装

只需在您喜爱的终端中运行以下命令:

$ pip install code-contracts

文档

完整的文档可在http://contracts.readthedocs.io/找到。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中的继承代码解释   java在映射键集流上应用带有anyMatch()的谓词,并在谓词为false时返回一些结果   java Lucene如何处理文本并留下标点符号?(如创建customAnalyzer或其他任何内容)   java我从父ArrayList返回对象时遇到问题   优先级队列Java的优先级队列与minheap有何不同?   java ListView返回错误的列表和位置   Java系统。对性能的影响   包管理器初始化的java空指针异常   java找到数字数组中缺失数字的最快方法   ApacheHttpClient 4。使用Java应用程序x登录到hotfile   Android中JSON解析的java问题   java我们能检测出一个按键被压成碎片吗   java GAE对象化如何将查询结果用于另一个查询   spring如何在applicationContext中转换对象。xml到java注释