한 기사에서 파이썬 이해하기 (7) ----- Assertions

오늘 U-net의 PyTorch 구현 버전을 살펴 보았을 때, 주장의 관련 문법이 사용 된 것을 발견했습니다. 여기에 기록하세요!

1. 주장의 문법적 형식

assert <断言判断条件> [,"错误提示消息"]

当表达式为真时,程序继续往下执行;

当表达式为假时,抛出AssertionError错误,并将‘参数’输出。

둘째, 사용 시나리오

어설 션은 프로그램에서 복구 할 수없는 오류가 발생했음을 개발자에게 알리는 데 사용됩니다. 사용자는 예측 가능한 오류 (예 : 관련 파일을 찾지 못함)를 수정하거나 재 시도 할 수 있습니다. 이러한 이유로 어설 션이 아닙니다.
프로그램에 버그가 없으면 이러한 어설 션 조건이 트리거되지 않지만 어설 션 조건을 위반하면 프로그램이 충돌하고 어설 션 오류를보고하여 개발자에게 "불가능한"상황을 위반했음을 알려주므로 더 쉽게 추적 할 수 있습니다. 프로그램의 버그를 수정합니다. Python의 Assertion 문은 런타임 오류를 처리하기위한 메커니즘이 아니라 디버깅 보조 도구입니다. assertion을 사용하는 목적은 개발자가 버그의 근본 원인을 더 빨리 찾을 수 있도록하는 것입니다. 프로그램에 버그가 없으면 절대로 An 어설 션 오류가 발생합니다.

세, 케이스

  • 암호
def fun1(s):
    n = int(s)
    assert n!= 0, 'n is zero'
    return 10 / n
fun1('0')
  • 가동 결과
AssertionError                            Traceback (most recent call last)
<ipython-input-6-c41609152707> in <module>
      3     assert n!= 0, 'n is zero'
      4     return 10 / n
----> 5 fun1('0')

<ipython-input-6-c41609152707> in fun1(s)
      1 def fun1(s):
      2     n = int(s)
----> 3     assert n!= 0, 'n is zero'
      4     return 10 / n
      5 fun1('0')

AssertionError: n is zero

참조

https://zhuanlan.zhihu.com/p/187589076

추천

출처blog.csdn.net/dongjinkun/article/details/114006994