pythonにおけるassertの役割

1723 ワード

まず、コードを何行か貼ります.
def _get_paths_from_images(path):
    assert os.path.isdir(path), '[Error] [%s] is not a valid directory' % path
    images = []
    for dirpath, _, fnames in sorted(os.walk(path)):
        for fname in sorted(fnames):
            if is_image_file(fname):
                img_path = os.path.join(dirpath, fname)
                images.append(img_path)
    assert images, '[%s] has no valid image file' % path
    return images
def _get_paths_from_binary(path):
    assert os.path.isdir(path), '[Error] [%s] is not a valid directory' % path
    files = []
    for dirpath, _, fnames in sorted(os.walk(path)):
        for fname in sorted(fnames):
            if is_binary_file(fname):
                binary_path = os.path.join(dirpath, fname)
                files.append(binary_path)
    assert files, '[%s] has no valid binary file' % path
    return files
  • 作用:
  • assert断言を使用することはpythonを学ぶ非常に良い習慣であり、python assert断言文のフォーマットと使い方は簡単である.プログラムが完備していない前に、プログラムがどこでエラーになるか分かりません.最もクラッシュを実行させるよりも、エラー条件が発生したときにクラッシュさせるほうがいいです.この場合、assert断言の助けが必要です.
  • python assert断言は、そのブール値が真の判定でなければならないことを宣言し、異常が発生した場合、表現が偽であることを示す.assert断言文はraise-if-notであり、表現式をテストするために使用され、その戻り値が偽であると、異常がトリガーされることが理解できます.eg:
    assert 1==1
    assert 2+2==2*2
    assert len(['my boy',12])<10
    assert range(4)==[0,1,2,3]
    
  • assert断言文に異常パラメータassertの異常パラメータを追加する方法は、断言式の後に文字列情報を追加し、断言を説明し、どこが問題なのかをよりよく知ることです.フォーマットは次のとおりです:
    assert expression [, arguments]
    assert     [,   ]
    
    例えば:
    assert len(lists) >=5,'        5'
    assert 2==1,'2   1'