vincenshen

>>> assert 1==1
>>> assert 1==0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError

从上面的举例中可以基本了解了 assert 的特点。

assert,翻译过来是“断言”之意。assert 是一句等价于布尔真的判定,发生异常就意味着表达式为假。

#!/usr/bin/env Python
# coding=utf-8
class Account(object):
  def __init__(self, number):
    self.number = number
    self.balance = 0
  def deposit(self, amount):
    assert amount > 0
    self.balance += balance
  def withdraw(self, amount):
    assert amount > 0
    if amount <= self.balance:
      self.balance -= amount
    else:
      print "balance is not enough."

上面的程序中,deposit() 和 withdraw() 方法的参数 amount 值必须是大于零的,这里就用断言,如果不满足条
件就会报错。

什么是使用断言的最佳时机?有文章做了总结:
如果没有特别的目的,断言应该用于如下情况:
• 防御性的编程
• 运行时对程序逻辑的检测
• 合约性检查(比如前置条件,后置条件)
• 程序中的常量
• 检查文档

 

分类:

技术点:

相关文章: