相关疑难解决方法(0)

Python断言的最佳实践

  1. assert作为标准代码的一部分使用而不是仅仅用于调试目的,是否存在性能或代码维护问题?

    assert x >= 0, 'x is less than zero'
    
    Run Code Online (Sandbox Code Playgroud)

    好或坏比

    if x < 0:
        raise Exception, 'x is less than zero'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 另外,有没有办法设置业务规则if x < 0 raise error,总是在没有try/except/finally这样的情况下进行检查,如果在整个代码中的任何时候x小于0都会引发错误,就像你assert x < 0在函数的开头设置一样,在函数内的任何地方哪里x变得少于0则引发异常?

python assert raise assertion

452
推荐指数
11
解决办法
22万
查看次数

python断言有和没有括号

这里有四个简单的assert调用:

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

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

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

>>> assert(1==2, "hi")
Run Code Online (Sandbox Code Playgroud)

请注意,最后一个不会引发错误.调用带或不带括号的断言会导致这种行为有什么区别?我的做法是使用括号,但上面的建议我不应该这样做.

python assert parentheses

91
推荐指数
4
解决办法
3万
查看次数

标签 统计

assert ×2

python ×2

assertion ×1

parentheses ×1

raise ×1