python调试神器——assert的用法

assert的中文意思是“断言,认定”。
程序员在用assert的时候,一般都“自信”认为程序运行过程中某些变量满足某个特定条件。如果不满足这个条件,则这个程序不用往下跑了(肯定是错了),这样我们可以知道在assert语句之前一定有bug。所以用assert最大的用处就是寻找bug位置,以及不用为bug错误付出很大的系统代价——因为程序到这里就停止了。


import numpy as np
A = np.array([[1,2,3],
              [2,3,5],
              [7,7,7]])
B = np.array([[1,1,1],
              [2,2,0]])
def mul_array(a, b):
    assert len(a[0]) == len(b)  
    # 矩阵a的列数必须等于b的行数
    mul_result = a*b
    print(mul_result)
    return mul_result
if __name__ == '__main__':
    mul_array(A,B)

如上,是一个关于assert的简单示例,只有矩阵的列数等于另一个矩阵的长度时,两个矩阵才能进行乘法。如果不满足assert条件,则没必要进行下一步
同时,assert还可以补加说明:


assert len(a[0]) == len(b),'矩阵a的列数必须等于b的行数'

在写代码的时候要养成多用assert的习惯,完成整个项目的时候就可以把assert都去掉。

猜你喜欢

转载自blog.csdn.net/leviopku/article/details/80484074